争怎路由网/应用软件/内容

Oracle自定义函数——f_henry_GetStringLength

应用软件2024-05-08 阅读
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
 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;

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

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

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

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

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



全新的路由器不仅让你更稳定快速地连接无线网络,更可以让家中的智能设备连接在一起。



……

相关阅读