CREATE OR REPLACE FUNCTION f_get_hanterm (han IN VARCHAR2)
RETURN VARCHAR2
DETERMINISTIC -- 함수인덱스를 걸기 위함
IS
hanterm VARCHAR2 (50);
BEGIN
SELECT CASE
WHEN han < 'ㄱ'
THEN substr(han, 1, 1)
WHEN ASCII ('ㄱ') <= ASCII (han)
AND ASCII (han) <= ASCII ('ㅎ')
THEN han
WHEN han < '나'
THEN 'ㄱ'
WHEN han < '다'
THEN 'ㄴ'
WHEN han < '라'
THEN 'ㄷ'
WHEN han < '마'
THEN 'ㄹ'
WHEN han < '바'
THEN 'ㅁ'
WHEN han < '사'
THEN 'ㅂ'
WHEN han < '아'
THEN 'ㅅ'
WHEN han < '자'
THEN 'ㅇ'
WHEN han < '차'
THEN 'ㅈ'
WHEN han < '카'
THEN 'ㅊ'
WHEN han < '타'
THEN 'ㅋ'
WHEN han < '파'
THEN 'ㅌ'
WHEN han < '하'
THEN 'ㅍ'
ELSE 'ㅎ'
END
INTO hanterm
FROM DUAL;
IF hanterm IS NULL
THEN
hanterm := '';
END IF;
RETURN hanterm;
END;
/
[출처 1] http://www.cyworld.com/sjcij/3117142
[출처 2] http://blog.naver.com/orapybubu?Redirect=Log&logNo=40092439547
(출처1의 쿼리를 기반으로 출처2의 DETERMINISTIC을 이용하여 함수를 만들었다.)
- write by 꼬마갱이 2010.02.16 -
..
'ORACLE·plsql' 카테고리의 다른 글
[복사되는블로그 꼬마갱이] 동적쿼리를 이용한 Count 함수 '(외따옴표활용) (0) | 2010.02.18 |
---|---|
[펌]deterministic (0) | 2010.02.16 |
[복사되는블로그 꼬마갱이]오라클 JOB 등록하기(문법,설명,예제) (0) | 2010.01.08 |
[펌]PL/SQL for Loop 사용법 (0) | 2009.12.23 |
[펌]Cursor (0) | 2009.12.23 |