CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),方山企業(yè)網(wǎng)站建設(shè),方山品牌網(wǎng)站建設(shè),網(wǎng)站定制,方山網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,方山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
V_COMPARE VARCHAR2(100);
V_RETURN VARCHAR2(4000);
FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');
END;
BEGIN
FOR I IN 1..LENGTH(P_NAME) LOOP
V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));
IF V_COMPARE = F_NLSSORT(' 吖 ') AND V_COMPARE = F_NLSSORT('驁 ') THEN
V_RETURN := V_RETURN || 'A';
ELSIF V_COMPARE = F_NLSSORT('八 ') AND V_COMPARE = F_NLSSORT('簿 ') THEN
V_RETURN := V_RETURN || 'B';
ELSIF V_COMPARE = F_NLSSORT('嚓 ') AND V_COMPARE = F_NLSSORT('錯 ') THEN
V_RETURN := V_RETURN || 'C';
ELSIF V_COMPARE = F_NLSSORT('咑 ') AND V_COMPARE = F_NLSSORT('鵽 ') THEN
V_RETURN := V_RETURN || 'D';
ELSIF V_COMPARE = F_NLSSORT('妸 ') AND V_COMPARE = F_NLSSORT('樲 ') THEN
V_RETURN := V_RETURN || 'E';
ELSIF V_COMPARE = F_NLSSORT('發(fā) ') AND V_COMPARE = F_NLSSORT('猤 ') THEN
V_RETURN := V_RETURN || 'F';
ELSIF V_COMPARE = F_NLSSORT('旮 ') AND V_COMPARE = F_NLSSORT('腂 ') THEN
V_RETURN := V_RETURN || 'G';
ELSIF V_COMPARE = F_NLSSORT('妎 ') AND V_COMPARE = F_NLSSORT('夻 ') THEN
V_RETURN := V_RETURN || 'H';
ELSIF V_COMPARE = F_NLSSORT('丌 ') AND V_COMPARE = F_NLSSORT('攈 ') THEN
V_RETURN := V_RETURN || 'J';
ELSIF V_COMPARE = F_NLSSORT('咔 ') AND V_COMPARE = F_NLSSORT('穒 ') THEN
V_RETURN := V_RETURN || 'K';
ELSIF V_COMPARE = F_NLSSORT('垃 ') AND V_COMPARE = F_NLSSORT('擽 ') THEN
V_RETURN := V_RETURN || 'L';
ELSIF V_COMPARE = F_NLSSORT('嘸 ') AND V_COMPARE = F_NLSSORT('椧 ') THEN
V_RETURN := V_RETURN || 'M';
ELSIF V_COMPARE = F_NLSSORT('拏 ') AND V_COMPARE = F_NLSSORT('瘧 ') THEN
V_RETURN := V_RETURN || 'N';
ELSIF V_COMPARE = F_NLSSORT('筽 ') AND V_COMPARE = F_NLSSORT('漚 ') THEN
V_RETURN := V_RETURN || 'O';
ELSIF V_COMPARE = F_NLSSORT('妑 ') AND V_COMPARE = F_NLSSORT('曝 ') THEN
V_RETURN := V_RETURN || 'P';
ELSIF V_COMPARE = F_NLSSORT('七 ') AND V_COMPARE = F_NLSSORT('裠 ') THEN
V_RETURN := V_RETURN || 'Q';
ELSIF V_COMPARE = F_NLSSORT('亽 ') AND V_COMPARE = F_NLSSORT('鶸 ') THEN
V_RETURN := V_RETURN || 'R';
ELSIF V_COMPARE = F_NLSSORT('仨 ') AND V_COMPARE = F_NLSSORT('蜶 ') THEN
V_RETURN := V_RETURN || 'S';
ELSIF V_COMPARE = F_NLSSORT('侤 ') AND V_COMPARE = F_NLSSORT('籜 ') THEN
V_RETURN := V_RETURN || 'T';
ELSIF V_COMPARE = F_NLSSORT('屲 ') AND V_COMPARE = F_NLSSORT('鶩 ') THEN
V_RETURN := V_RETURN || 'W';
ELSIF V_COMPARE = F_NLSSORT('夕 ') AND V_COMPARE = F_NLSSORT('鑂 ') THEN
V_RETURN := V_RETURN || 'X';
ELSIF V_COMPARE = F_NLSSORT('丫 ') AND V_COMPARE = F_NLSSORT('韻 ') THEN
V_RETURN := V_RETURN || 'Y';
ELSIF V_COMPARE = F_NLSSORT('帀 ') AND V_COMPARE = F_NLSSORT('咗 ') THEN
V_RETURN := V_RETURN || 'Z';
ELSE? V_RETURN := V_RETURN ||SUBSTR(P_NAME, I, 1);
END IF;
END LOOP;
RETURN V_RETURN;
END;
eg:?select f_pinyin('我愛中華!') from dual
WAZH!
oracle漢字轉(zhuǎn)拼音(獲得全拼/拼音首字母/拼音截取等)效果如下: Oracle 字符集 GBK 沒有問題 , UTF -8 需要修改一下Sql代碼
--oracle漢字轉(zhuǎn)拼音 PACKAGE
--1.獲得全拼
SELECT GETHZPY.GETHZFULLPY('漢字') FROM DUAL;結(jié)果 : HanZi
--2.拼音首字母
SELECT GETHZPY.GETHZPYCAP('漢字') FROM DUAL;結(jié)果 : HZ
--3.拼音截取等
SELECT GETHZPY.GETHZPYCAPSUBSTR('漢字', 0, 1) FROM DUAL;結(jié)果 : H
代碼部分太長掛在附件上 以下代碼如果在 PL/SQL Developer 執(zhí)行的話,選擇 Command Window 粘貼.
附件在最下面.
oracle漢字轉(zhuǎn)拼音package_獲得全拼——拼音首字母_拼音截取等.zip (35.9 KB)
首先你得有 對應(yīng)的漢字拼音表
然后才能、寫個函數(shù) 做轉(zhuǎn)換
Oracle
歐瑞可
隨便你怎么讀都可以的。。反正字典上沒有。。
這個單詞是由三個音節(jié)組成
O就和O my god里面那個O是一樣的發(fā)音。。
ra就和單詞“race”里面那個ra一樣的發(fā)音。。
cle就和bicycle里面的那個cle一樣發(fā)音。。
曉得不?