文章詳情頁(yè)
Oracle自定義函數(shù):f_henry_GetStringLength
瀏覽:101日期:2023-11-19 19:25:34
Oracle下的Length()函數(shù)不能區(qū)分中英文,只能得到字符數(shù)而不能得到字節(jié)數(shù),很多時(shí)候插入string到字段中時(shí)總要先進(jìn)行一次檢查,防止string長(zhǎng)度超過(guò)了字段定義的長(zhǎng)度,一般大家都是把這個(gè)檢測(cè)放到應(yīng)用程序中執(zhí)行,用我寫(xiě)的這個(gè)小函數(shù)就可以實(shí)現(xiàn)在數(shù)據(jù)庫(kù)服務(wù)器端對(duì)要插入的字段進(jìn)行檢測(cè)。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;/*************************以下是測(cè)試***************************/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ù)庫(kù)
排行榜
