Oracle 함수 중국어 병음 바꾸기(이니셜)
61087 단어 Oracle 함수
CREATE OR REPLACE FUNCTION FUN_GET_PYCODE(p_str IN VARCHAR2,
p_flag 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_flag
WHEN 1 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 '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '5200' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '5205' AND '5332' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '5334' AND '5739' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '7226' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '8224' AND '8574' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '8575' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '5160' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
WHEN 2 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 '3C82' THEN
v_return := v_return || 'A';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'B';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'C';
WHEN v_compare BETWEEN '4BAD' AND '5200' THEN
v_return := v_return || 'D';
WHEN v_compare BETWEEN '5205' AND '5332' THEN
v_return := v_return || 'E';
WHEN v_compare BETWEEN '5334' AND '5739' THEN
v_return := v_return || 'F';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'G';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'H';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'I';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'J';
WHEN v_compare BETWEEN '5BC8' AND '7226' THEN
v_return := v_return || 'K';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'L';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'M';
WHEN v_compare BETWEEN '8224' AND '8574' THEN
v_return := v_return || 'N';
WHEN v_compare BETWEEN '8575' AND '85AE' THEN
v_return := v_return || 'O';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'P';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'Q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'R';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 'S';
WHEN v_compare BETWEEN '5160' AND 'A1AE' THEN
v_return := v_return || 'T';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'W';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'X';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'Y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'Z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
ELSE
--
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 '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '5200' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '5205' AND '5332' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '5334' AND '5739' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '7226' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '8224' AND '8574' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '8575' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '5160' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
END CASE;
RETURN v_return;
END FUN_GET_PYCODE;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
oracle 함수 한자 병음의 자모 가져오기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.