Oracle自定义函数——f_henry_GetStringLength

时间:2007-12-23  来源:不详  作者:迈克DB
Oracle下的Length()函数不能区分中英文,只能得到字符数而不能得到字节数,很多时候插入string到字段中时总要先进行一次检查,防止string长度超过了字段定义的长度,一般大家都是把这个检测放到应用程序中执行,用我写的这个小函数就可以实现在数据库服务器端对要插入的字段进行检测。

create or replace function f_henry_GetStringLength(pv_String in varchar2) return integer is
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; adminI5.com站.长.之.家

站长_之家

此文来自站长之家

/*************************以下是测试***************************/

此文来自站长之家

SQL> select length('啊$@oii发大幅') from dual;

此文來自站长之家

LENGTH('啊$@OII发大幅')
-----------------------
9

AdminI5.com站长之_家

SQL> select f_henry_GetStringLength('啊$@oii发大幅') from dual;

站长之_家

F_HENRY_GETSTRINGLENGTH('啊$@O
------------------------------
13

admini5.com


看完这篇,您有何感觉呢?

文章评论

共有 0位Admini5网友发表了评论 查看完整内容