【个人收藏】
1.将汉字转拼音首字母自定义 Function
1drop function F_GET_PINYIN 2 3CREATE OR REPLACE FUNCTION F_GET_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS 4V_COMPARE VARCHAR2(50); 5V_RETURN VARCHAR2(100); 6 7FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS 8BEGIN 9RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M'); 10END; 11BEGIN 12FOR I IN 1..LENGTH(P_NAME) LOOP 13V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1)); 14IF V_COMPARE >= F_NLSSORT(' 吖 ') AND V_COMPARE <= F_NLSSORT('驁 ') THEN 15V_RETURN := V_RETURN || 'a'; 16ELSIF V_COMPARE >= F_NLSSORT('八 ') AND V_COMPARE <= F_NLSSORT('簿 ') THEN 17V_RETURN := V_RETURN || 'b'; 18ELSIF V_COMPARE >= F_NLSSORT('嚓 ') AND V_COMPARE <= F_NLSSORT('錯 ') THEN 19V_RETURN := V_RETURN || 'c'; 20ELSIF V_COMPARE >= F_NLSSORT('咑 ') AND V_COMPARE <= F_NLSSORT('鵽 ') THEN 21V_RETURN := V_RETURN || 'd'; 22ELSIF V_COMPARE >= F_NLSSORT('妸 ') AND V_COMPARE <= F_NLSSORT('樲 ') THEN 23V_RETURN := V_RETURN || 'e'; 24ELSIF V_COMPARE >= F_NLSSORT('发 ') AND V_COMPARE <= F_NLSSORT('猤 ') THEN 25V_RETURN := V_RETURN || 'f'; 26ELSIF V_COMPARE >= F_NLSSORT('旮 ') AND V_COMPARE <= F_NLSSORT('腂 ') THEN 27V_RETURN := V_RETURN || 'g'; 28ELSIF V_COMPARE >= F_NLSSORT('妎 ') AND V_COMPARE <= F_NLSSORT('夻 ') THEN 29V_RETURN := V_RETURN || 'h'; 30ELSIF V_COMPARE >= F_NLSSORT('丌 ') AND V_COMPARE <= F_NLSSORT('攈 ') THEN 31V_RETURN := V_RETURN || 'j'; 32ELSIF V_COMPARE >= F_NLSSORT('咔 ') AND V_COMPARE <= F_NLSSORT('穒 ') THEN 33V_RETURN := V_RETURN || 'k'; 34ELSIF V_COMPARE >= F_NLSSORT('垃 ') AND V_COMPARE <= F_NLSSORT('擽 ') THEN 35V_RETURN := V_RETURN || 'l'; 36ELSIF V_COMPARE >= F_NLSSORT('嘸 ') AND V_COMPARE <= F_NLSSORT('椧 ') THEN 37V_RETURN := V_RETURN || 'm'; 38ELSIF V_COMPARE >= F_NLSSORT('拏 ') AND V_COMPARE <= F_NLSSORT('瘧 ') THEN 39V_RETURN := V_RETURN || 'n'; 40ELSIF V_COMPARE >= F_NLSSORT('筽 ') AND V_COMPARE <= F_NLSSORT('漚 ') THEN 41V_RETURN := V_RETURN || 'o'; 42ELSIF V_COMPARE >= F_NLSSORT('妑 ') AND V_COMPARE <= F_NLSSORT('曝 ') THEN 43V_RETURN := V_RETURN || 'p'; 44ELSIF V_COMPARE >= F_NLSSORT('七 ') AND V_COMPARE <= F_NLSSORT('裠 ') THEN 45V_RETURN := V_RETURN || 'q'; 46ELSIF V_COMPARE >= F_NLSSORT('亽 ') AND V_COMPARE <= F_NLSSORT('鶸 ') THEN 47V_RETURN := V_RETURN || 'r'; 48ELSIF V_COMPARE >= F_NLSSORT('仨 ') AND V_COMPARE <= F_NLSSORT('蜶 ') THEN 49V_RETURN := V_RETURN || 's'; 50ELSIF V_COMPARE >= F_NLSSORT('侤 ') AND V_COMPARE <= F_NLSSORT('籜 ') THEN 51V_RETURN := V_RETURN || 't'; 52ELSIF V_COMPARE >= F_NLSSORT('屲 ') AND V_COMPARE <= F_NLSSORT('鶩 ') THEN 53V_RETURN := V_RETURN || 'w'; 54ELSIF V_COMPARE >= F_NLSSORT('夕 ') AND V_COMPARE <= F_NLSSORT('鑂 ') THEN 55V_RETURN := V_RETURN || 'x'; 56ELSIF V_COMPARE >= F_NLSSORT('丫 ') AND V_COMPARE <= F_NLSSORT('韻 ') THEN 57V_RETURN := V_RETURN || 'y'; 58ELSIF V_COMPARE >= F_NLSSORT('帀 ') AND V_COMPARE <= F_NLSSORT('咗 ') THEN 59V_RETURN := V_RETURN || 'z'; 60END IF; 61END LOOP; 62RETURN V_RETURN; 63END; 64 65select f_get_pinyin('中国') as 拼音码 from dual;
2
3
4