本帖最后由 samt007 于 2013-3-21 17:54 编辑
前言:
最近处理一个特殊的问题,需要用到汉字自动转换拼音的功能。
解决:
在这里找了不少资料,都是有所缺陷,而且也好像很绕。其实是一个很简单的东东。后来还是自己写了一个函数获取。分享出来,给有需要的XD了。
-------------
这是一个比较简单的汉字转拼音的Oracle函数写法。
原理是,先将汉字对应的拼音存入一个表格。
然后对这个表格对应的存在的汉字找出其拼音,然后输出。
这样子做,容易维护,而且也容易扩展。如果万一发现哪个字少了,直接增加表格记录即可。
步骤如下:
----建立汉字拼音对照表_表格。
CREATE TABLE XYG.XYG_chinese_Spell(
chinese_Spell_ID NUMBER NOT NULL,--表格ID
chinese_Spell VARCHAR2(50) NOT NULL, -- 汉语拼音
chinese_Word VARCHAR2(4000) NOT NULL -- 汉字堆
---5 who
,CREATED_BY NUMBER DEFAULT -1 NOT NULL --创建者
,CREATION_DATE DATE DEFAULT SYSDATE NOT NULL --创建日期
,LAST_UPDATED_BY NUMBER DEFAULT -1NOT NULL --最后更新人
,LAST_UPDATE_DATE DATE DEFAULT SYSDATE NOT NULL --最后更新日期
,LAST_UPDATE_LOGIN NUMBER DEFAULT -1NOT NULL --最后登陆人
,ATTRIBUTE_CATEGORY VARCHAR2(30)
,ATTRIBUTE1 VARCHAR2(240)
,ATTRIBUTE2 VARCHAR2(240)
,ATTRIBUTE3 VARCHAR2(240)
,ATTRIBUTE4 VARCHAR2(240)
,ATTRIBUTE5 VARCHAR2(240)
,ATTRIBUTE6 VARCHAR2(240)
,ATTRIBUTE7 VARCHAR2(240)
,ATTRIBUTE8 VARCHAR2(240)
,ATTRIBUTE9 VARCHAR2(240)
,ATTRIBUTE10 VARCHAR2(240)
,ATTRIBUTE11 VARCHAR2(240)
,ATTRIBUTE12 VARCHAR2(240)
,ATTRIBUTE13 VARCHAR2(240)
,AT