oracle汉字转全拼

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle汉字转全拼相关的知识,希望对你有一定的参考价值。

oracle中有一列姓名 如何能在后面加一列对应的全拼姓名列,还有如何挑出多于3个字的姓名,数据量比较大,几千万吧。
技术小白,感谢大神,如果能详细帮忙解答可追加悬赏值。

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;
/
参考技术A 参考这个帖子 http://bbs.chinaunix.net/thread-3643774-1-1.html, 汉字转拼音是 算法写成函数,和数据量大小没什么关系。

askmaclean oracle本回答被提问者采纳
参考技术B 只用Oracle么? 用没用java?

oracle 汉字转拼音

oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)

 
效果如下: Oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下
 
Sql代码  
--oracle汉字转拼音 PACKAGE  
 
--1.获得全拼  www.2cto.com  
SELECT GETHZPY.GETHZFULLPY(‘汉字‘) FROM DUAL;  
结果 : HanZi  
 
--2.拼音首字母  
SELECT GETHZPY.GETHZPYCAP(‘汉字‘) FROM DUAL;  
结果 : HZ  
 
--3.拼音截取等  
SELECT GETHZPY.GETHZPYCAPSUBSTR(‘汉字‘, 0, 1) FROM DUAL;  
结果 : H    www.2cto.com  

代码部分太长挂在附件上 以下代码如果在 PL/SQL Developer 执行的话,选择 Command Window 粘贴.

附件在最下面.
 
oracle汉字转拼音package_获得全拼——拼音首字母_拼音截取等.zip (35.9 KB)

http://up.2cto.com/2012/0926/20120926102526632.zip








以上是关于oracle汉字转全拼的主要内容,如果未能解决你的问题,请参考以下文章

oracle 汉字转拼音

●获取汉字全拼

js汉语转拼音(全拼首字母拼音首字母)

Oracle 判断表字段里字符串是不是含有汉字

mysql数据库汉字首字母简拼全拼

mysql 汉字按拼音字母排序获取拼音首字母拼音全拼