科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道自定义函数:f_henry_GetStringLength

自定义函数:f_henry_GetStringLength

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  Oracle下的Length()函数不能区分中英文,只能得到字符数而不能得到字节数,很多时候插入string到字段中时总要先进行一次检查,防止string长度超过了字段定义的长度,一般大家都是把这个检测放到应用程序中执行。

作者:中国IT实验室 来源:中国IT实验室 2007年10月1日

关键字: SQL 数据库 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

  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

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章