|
--注:此函數(shù)只在ZHS16GBK字符集的Oracle 9.2中通過(guò),其它平臺(tái)沒(méi)有測(cè)試,請(qǐng)根據(jù)實(shí)際需要作相應(yīng)的修改 create or replace function csound(c in varchar2, op in integer default 1 --加上不等于1的參數(shù),則對(duì)全字符串進(jìn)行處理,支持中英文合編 ) return varchar2 is c1 varchar2(2); c2 varchar2(2); p integer; n1 integer; n2 integer; csound varchar2(32767); begin if op=1 then p:=1 ; else p:=length(c); end if; for i in 1..p loop c2:=substr(c,i,1); n1:=floor(ascii(c2)/256); n2:=mod(ascii(c2),256); if n1=0 and n2<=129 then c1:=c2; elsif n2<>127 and n2<>255 and not (n2 between 0 and 63) then select case when c2>='丂' and c2<'芭' then 'A' when c2>='芭' and c2<'擦' then 'B' when c2>='擦' and c2<'搭' then 'C' when c2>='搭' and c2<'蛾' then 'D' when c2>='蛾' and c2<'發(fā)' then 'E' when c2>='發(fā)' and c2<'噶' then 'F' when c2>='噶' and c2<'哈' then 'G' when c2>='哈' and c2<'擊' then 'H' when c2>='擊' and c2<'喀' then 'J' when c2>='喀' and c2<'垃' then 'K' when c2>='垃' and c2<'媽' then 'L' when c2>='媽' and c2<'拿' then 'M' when c2>='拿' and c2<'哦' then 'N'
|