oracle下的length()函数不能区分中英文,只能得到字符数而不能得到字节数,很多时候插入string到字段中时总要先进行一次检查,防止string长度超过了字段定义的长度,一般大家都是把这个检测放到应用程序中执行,用我写的这个小函数就可以实现在数据库服务器端对要插入的字段进行检测。 create or replace function f_henry_getstringlength(pv_string in varchar2) return integer is /*************************以下是测试***************************/ sql> select length('啊$@oii发大幅') from dual; length('啊$@oii发大幅') sql> select f_henry_getstringlength('啊$@oii发大幅') from dual; f_henry_getstringlength('啊$@o
result integer;
i number;
begin
result:=0;
if length(pv_string)=0 then
return(result);
end if;
for i in 1 .. length(pv_string) loop
if ascii(substr(pv_string,i,1))<256 then
result:=result+1;
else
result:=result+2;
end if;
end loop;
return(result);
end f_henry_getstringlength;
-----------------------
9
------------------------------
13
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器