文章詳情頁
Oracle自定義函數(shù):f_henry_GetStringLength
瀏覽:103日期:2023-11-19 19:25:34
Oracle下的Length()函數(shù)不能區(qū)分中英文,只能得到字符數(shù)而不能得到字節(jié)數(shù),很多時候插入string到字段中時總要先進(jìn)行一次檢查,防止string長度超過了字段定義的長度,一般大家都是把這個檢測放到應(yīng)用程序中執(zhí)行,用我寫的這個小函數(shù)就可以實現(xiàn)在數(shù)據(jù)庫服務(wù)器端對要插入的字段進(jìn)行檢測。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發(fā)大幅') from dual;LENGTH('啊$@OII發(fā)大幅')----------------------- 9SQL> select f_henry_GetStringLength('啊$@oii發(fā)大幅') from dual;F_HENRY_GETSTRINGLENGTH('啊$@O------------------------------ 13
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
