-- This function is written in the ZHS16GBK character set.
-- Run the command in the Command window. It is best to enter/a prompt indicating successful creation.
Create or replace function F_PINYIN (P_NAME IN VARCHAR2) RETURN VARCHAR2
V_COMPARE VARCHAR2 (100 );
V_RETURN VARCHAR2 (4000 );
FUNCTION F_NLSSORT (P_WORD IN VARCHAR2) RETURN VARCHAR2
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 ('tag') AND V_COMPARE <= F_NLSSORT ('tag') THEN
V_RETURN: = V_RETURN | 'a ';
ELSIF V_COMPARE> = F_NLSSORT ('8') AND V_COMPARE <= F_NLSSORT (' ') THEN
V_RETURN: = V_RETURN | 'B ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'C ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'D ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'E ';
ELSIF V_COMPARE> = F_NLSSORT ('fout') AND V_COMPARE <= F_NLSSORT ('hangzhou') THEN
V_RETURN: = V_RETURN | 'F ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'G ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'H ';
ELSIF V_COMPARE> = F_NLSSORT ('stop') AND V_COMPARE <= F_NLSSORT ('stopped') THEN
V_RETURN: = V_RETURN | 'J ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'K ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'l ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'M ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'n ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'O ';
ELSIF V_COMPARE> = F_NLSSORT ('taobao') AND V_COMPARE <= F_NLSSORT ('overview') THEN
V_RETURN: = V_RETURN | 'P ';
ELSIF V_COMPARE> = F_NLSSORT ('7') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'q ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'R ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN |'s ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'T ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'W ';
ELSIF V_COMPARE> = F_NLSSORT ('shanghai') AND V_COMPARE <= F_NLSSORT ('shanghai') THEN
V_RETURN: = V_RETURN | 'X ';
ELSIF V_COMPARE> = F_NLSSORT ('ya ') AND V_COMPARE <= F_NLSSORT ('y') THEN
V_RETURN: = V_RETURN | 'y ';
ELSIF V_COMPARE> = F_NLSSORT ('hour') AND V_COMPARE <= F_NLSSORT ('hour') THEN
V_RETURN: = V_RETURN | 'Z ';
End if;
End loop;
RETURN V_RETURN;
END;
-- Test SELECT F_PINYIN (the 'function has been created. ') From dual; Output HSYCJ
Xiao Zhang, bald head author