没有合适的资源?快使用搜索试试~ 我知道了~
首页oracle姓名中文转全拼函数
中文姓名生僻字输入以及汉字全拼一直是个老难题,经过我的整理改进,现共享这个文档,经检查此文档存在部分汉字没有对应转换以及汉字姓多音的两个问题,文档说明中以及提供解决方案(因本人找不到oracle的汉字字符全集编码对照以及精力有限),请各网友本着共享精神,逐渐将此文档补全,供大家共同使用,此文档与本人上传的另一份oracle汉字转拼音的文档可以对比参看,先前一份函数全但存在好多问题,这份文档只有转全拼小写的部分,评论一句就可下载了。
资源详情
资源评论
资源推荐
/****************************************************************************************
*
中文姓名转全拼音:
fn_getpyWKG
返回不带空格间隔的汉字全拼
; *
*
执行:在
SQL
窗口,粘贴全选执行,注意两个函数间要用“
/”
分割,否则不能一次创建两个函数;
*
*
刷新
function
,查看是否创建成功两个新
function
。
*
*fn_ getpyWKG
(’汉字’
,0
)返回全拼全小写,无空格;
*
*
注意:本方法经测试发现部分汉字没有取到对应全拼,请按输出后的错误结果,反向补全对应编码范
*
*
围内的对应转换全拼,例如“恒”
*
* v_return := v_return ||'&kk&'||v_compare||' '||i||'&kk&'|| v_substr; *
* 根据 v_compare 为 5EE8,在'5EDC'后新增 case when 5EE8 转换为’heng’ ; *
* *
*
部分汉字作为姓名的时候是多音字,请检查特殊姓氏,并修改对应编码范围内的特殊转换,
*
*
例如:
43D9“
查”,作为姓氏应该转换为“
zha”
,作为普通字转换为“
cha”
;
*
*
修改
WHEN v_compare BETWEEN '43B2' AND '440A' *
* THEN *
* IF v_compare = '43D9' AND i = 1 THEN *
* v_return := v_return || 'zha'; *
* ELSE *
* v_return := v_return || 'cha'; *
* END IF; *
*****************************************************************************************/
CREATE OR REPLACE FUNCTION fn_getpyWKG(p_str IN VARCHAR2, p_>ag NUMBER DEFAULT
NULL) RETURN VARCHAR2 AS
v_compare VARCHAR2 (4);
v_return VARCHAR2 (4000);
v_length INT := 0;
v_substr VARCHAR2 (4);
FUNCTION fn_nlssort (p_word IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN SUBSTR (NLSSORT (p_word, 'nls_sort=schinese_pinyin_m'), 1, 4);
END fn_nlssort;
BEGIN
IF p_str IS NULL
THEN
RETURN '';
END IF;
v_length := LENGTH (p_str);
CASE p_>ag
WHEN 0
THEN --
全拼小写
FOR i IN 1 .. v_length
LOOP
v_substr := SUBSTR (p_str, i, 1);
v_compare := fn_nlssort (v_substr);
CASE
WHEN v_compare BETWEEN '3B29' AND '3B30'
THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3B32' AND '3B9E'
THEN
v_return := v_return || 'ai';
WHEN v_compare BETWEEN '3BA0' AND '3BFE'
THEN
v_return := v_return || 'an';
WHEN v_compare BETWEEN '3C01' AND '3C14'
THEN
v_return := v_return || 'ang';
WHEN v_compare BETWEEN '3C15' AND '3C82'
THEN
v_return := v_return || 'ao';
WHEN v_compare BETWEEN '3C84' AND '3CE9'
THEN
v_return := v_return || 'ba';
WHEN v_compare BETWEEN '3CED' AND '3D1D'
THEN
v_return := v_return || 'bai';
WHEN v_compare BETWEEN '3D20' AND '3D64'
THEN
v_return := v_return || 'ban';
WHEN v_compare BETWEEN '3D66' AND '3DA2'
THEN
v_return := v_return || 'bang';
WHEN v_compare BETWEEN '3DA4' AND '3E10'
THEN
v_return := v_return || 'bao';
WHEN v_compare = '3E11'
THEN
v_return := v_return || 'be';
WHEN v_compare BETWEEN '3E12' AND '3E7A'
THEN
v_return := v_return || 'bei';
WHEN v_compare BETWEEN '3E7C' AND '3EA0'
THEN
v_return := v_return || 'ben';
WHEN v_compare BETWEEN '3EA1' AND '3ED5'
THEN
v_return := v_return || 'beng';
WHEN v_compare BETWEEN '3ED8' AND '3FE9'
THEN
v_return := v_return || 'bi';
WHEN v_compare BETWEEN '3FEA' AND '4055'
THEN
v_return := v_return || 'bian';
WHEN v_compare BETWEEN '4058' AND '40AE'
THEN
v_return := v_return || 'biao';
WHEN v_compare BETWEEN '40B4' AND '40D4'
THEN
v_return := v_return || 'bie';
WHEN v_compare BETWEEN '40D6' AND '4116'
THEN
v_return := v_return || 'bin';
WHEN v_compare BETWEEN '4118' AND '4160'
THEN
v_return := v_return || 'bing';
WHEN v_compare BETWEEN '4161' AND '4224'
THEN
v_return := v_return || 'bo';
WHEN v_compare BETWEEN '4225' AND '427C'
THEN
v_return := v_return || 'bu';
WHEN v_compare BETWEEN '427D' AND '4289'
THEN
v_return := v_return || 'ca';
WHEN v_compare BETWEEN '428C' AND '42B5'
THEN
v_return := v_return || 'cai';
WHEN v_compare BETWEEN '42B9' AND '430C'
THEN
v_return := v_return || 'can';
WHEN v_compare BETWEEN '430D' AND '4334'
THEN
v_return := v_return || 'cang';
WHEN v_compare BETWEEN '4335' AND '435C'
THEN
v_return := v_return || 'cao';
WHEN v_compare BETWEEN '435D' AND '438C'
THEN
v_return := v_return || 'ce';
WHEN v_compare BETWEEN '4390' AND '4398'
THEN
v_return := v_return || 'cen';
WHEN v_compare BETWEEN '439D' AND '43AA'
THEN
v_return := v_return || 'ceng';
WHEN v_compare BETWEEN '43B2' AND '440A'
THEN
IF v_compare = '43D9' AND i = 1 THEN
v_return := v_return || 'zha';
ELSE
v_return := v_return || 'cha';
END IF;
WHEN v_compare BETWEEN '440E' AND '442D'
THEN
v_return := v_return || 'chai';
WHEN v_compare BETWEEN '4431' AND '44E1'
THEN
v_return := v_return || 'chan';
WHEN v_compare BETWEEN '44E4' AND '4552'
THEN
v_return := v_return || 'chang';
WHEN v_compare BETWEEN '4554' AND '458E'
THEN
v_return := v_return || 'chao';
WHEN v_compare BETWEEN '4590' AND '45C8'
THEN
v_return := v_return || 'che';
WHEN v_compare BETWEEN '45C9' AND '463D'
THEN
v_return := v_return || 'chen';
WHEN v_compare BETWEEN '463E' AND '46CD'
THEN
v_return := v_return || 'cheng';
WHEN v_compare BETWEEN '46CE' AND '47A6'
THEN
v_return := v_return || 'chi';
WHEN v_compare BETWEEN '47A8' AND '47EC'
THEN
v_return := v_return || 'chong';
WHEN v_compare BETWEEN '47ED' AND '484C'
THEN
v_return := v_return || 'chou';
WHEN v_compare BETWEEN '484D' AND '48E2'
THEN
v_return := v_return || 'chu';
WHEN v_compare BETWEEN '48E9' AND '48F4'
THEN
v_return := v_return || 'chuai';
WHEN v_compare BETWEEN '48F6' AND '4924'
THEN
v_return := v_return || 'chuan';
WHEN v_compare BETWEEN '4925' AND '4951'
THEN
v_return := v_return || 'chuang';
WHEN v_compare BETWEEN '4954' AND '496E'
THEN
v_return := v_return || 'chui';
WHEN v_compare BETWEEN '4971' AND '49C6'
THEN
v_return := v_return || 'chun';
WHEN v_compare BETWEEN '49C8' AND '49EA'
THEN
v_return := v_return || 'chuo';
WHEN v_compare BETWEEN '49EC' AND '4A4A'
THEN
v_return := v_return || 'ci';
WHEN v_compare BETWEEN '4A51' AND '4AB2'
THEN
v_return := v_return || 'cong';
WHEN v_compare BETWEEN '4AB4' AND '4ABA'
THEN
v_return := v_return || 'cou';
WHEN v_compare BETWEEN '4ABC' AND '4AEA'
THEN
v_return := v_return || 'cu';
WHEN v_compare BETWEEN '4AEE' AND '4B0C'
THEN
v_return := v_return || 'cuan';
WHEN v_compare BETWEEN '4B0D' AND '4B56'
THEN
v_return := v_return || 'cui';
WHEN v_compare BETWEEN '4B59' AND '4B6C'
THEN
v_return := v_return || 'cun';
WHEN v_compare BETWEEN '4B70' AND '4BA9'
THEN
v_return := v_return || 'cuo';
WHEN v_compare BETWEEN '4BAD' AND '4BFE'
THEN
v_return := v_return || 'da';
WHEN v_compare BETWEEN '4C00' AND '4C4E'
THEN
v_return := v_return || 'dai';
WHEN v_compare BETWEEN '4C50' AND '4CDC'
THEN
v_return := v_return || 'dan';
WHEN v_compare BETWEEN '4CDE' AND '4D26'
THEN
v_return := v_return || 'dang';
WHEN v_compare BETWEEN '4D28' AND '4D76'
THEN
v_return := v_return || 'dao';
WHEN v_compare BETWEEN '4D7E' AND '4D8D'
THEN
v_return := v_return || 'de';
WHEN v_compare BETWEEN '4D90' AND '4D91'
THEN
v_return := v_return || 'den';
WHEN v_compare BETWEEN '4D94' AND '4DC0'
THEN
v_return := v_return || 'deng';
WHEN v_compare BETWEEN '4DC4' AND '4E8A'
THEN
v_return := v_return || 'di';
WHEN v_compare BETWEEN '4E8D' AND '4EE8'
THEN
v_return := v_return || 'dian';
WHEN v_compare BETWEEN '4EE9' AND '4F38'
THEN
v_return := v_return || 'diao';
WHEN v_compare BETWEEN '4F39' AND '4F90'
THEN
v_return := v_return || 'die';
WHEN v_compare = '4F8D'
THEN
v_return := v_return || 'dei';
WHEN v_compare BETWEEN '4F92' AND '4FCD'
THEN
v_return := v_return || 'ding';
WHEN v_compare BETWEEN '4FCD' AND '4FD4'
THEN
v_return := v_return || 'diu';
WHEN v_compare BETWEEN '4FD5' AND '5032'
THEN
v_return := v_return || 'dong';
WHEN v_compare BETWEEN '5034' AND '507C'
THEN
v_return := v_return || 'dou';
WHEN v_compare BETWEEN '507E' AND '50E9'
THEN
v_return := v_return || 'du';
WHEN v_compare BETWEEN '50EA' AND '5110'
THEN
v_return := v_return || 'duan';
WHEN v_compare BETWEEN '5114' AND '514E'
THEN
v_return := v_return || 'dui';
WHEN v_compare BETWEEN '5152' AND '518D'
THEN
v_return := v_return || 'dun';
WHEN v_compare BETWEEN '518E' AND '5200'
THEN
v_return := v_return || 'duo';
WHEN v_compare BETWEEN '5205' AND '52C2'
THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '52C4' AND '52CD'
THEN
v_return := v_return || 'en';
WHEN v_compare = '52D4'
THEN
v_return := v_return || 'eng';
WHEN v_compare BETWEEN '52D9' AND '5332'
THEN
v_return := v_return || 'er';
WHEN v_compare BETWEEN '5334' AND '5366'
THEN
v_return := v_return || 'fa';
WHEN v_compare BETWEEN '536A' AND '53FA'
THEN
v_return := v_return || 'fan';
WHEN v_compare BETWEEN '53FD' AND '5438'
剩余20页未读,继续阅读
huamantian
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0