oracle怎么改成汉语,oracle将汉字转换成拼音的函数。

CREATE OR REPLACE Function F_GetHzPy(V_HZ Varchar2,V_XS Varchar2 Default 'U',V_FG Varchar2 Default ' ') Return Varchar2 As V_PY Varchar2(100) Default NULL;  L_HZ Varchar2(8);  L_PY Varchar2(24);  I Number;  Cursor CUR_PY Is Select C_PY From XT_HZPY Where C_HZ = L_HZ AND ROWNUM<2;  Cursor CUR_PT Is Select SubstrB(C_PY,1,1) From XT_HZPY Where C_HZ = L_HZ AND ROWNUM<2; --获取汉字拼音函数F_GetHzPy('汉字串','返回大小写,默认为大写,传U为大写,其他字符或D为小写','返回拼音值的每个汉字拼音的间隔符号,默认为空格') --例如:F_GetHzPy('中华民族','D','/')  返回值为'zhong/hua/minzu' --例如:F_GetHzPy('中华民族')  返回值为'ZHONG HUA MINZU' --拼音头例如:F_GetHzPy('中华民族','D','PT')  返回值为'zhmz' Begin   I:=1;   While I<= Length(V_HZ) Loop     L_HZ := Substr(V_HZ,I,1);     L_PY:=NULL;     If upper(V_FG)<>'PT' Then     OPEN CUR_PY;     FETCH CUR_PY INTO L_PY;     CLOSE CUR_PY;     Else     OPEN CUR_PT;     FETCH CUR_PT INTO L_PY;     CLOSE CUR_PT;     End If;     L_PY:=Replace(L_PY,' ','');     If Nvl(L_PY,'NULL')='NULL' Then       L_PY:=L_HZ;     End If;     If V_XS='U' Then       L_PY:=upper(L_PY);     End If;     If I=Length(V_HZ) Then       V_PY:=V_PY||L_PY;     Else       If V_PY Is NULL Then         V_PY:=L_PY;       Else     If upper(V_FG)<>'PT' Then           V_PY:=V_PY||V_FG||L_PY;         Else           V_PY:=V_PY||L_PY;         End If;       End If;     End If;     I:=I+1;   End Loop;   V_PY:=Trim(V_PY);   Return V_PY; End; /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值