예) fn_korinitialkeyword('홍길동')
return : ㅎㄱㄷ
select *
from 테이블
where fn_korinitialkeyword(직원명컬럼) like '%ㅎㄱㄷ%'
function fn_korinitialkeyword( str in varchar2) return varchar2
is
returnStr varchar2(100);
cnt number := 0;
tmpStr varchar2(10);
begin
if str is null then
return '';
end if;
cnt := length(str);
for i in 1 .. cnt
loop
tmpStr := substr(str,i,1);
returnStr := returnStr ||
case when tmpStr < 'ㄱ' then substr(tmpStr, 1, 1)
when ascii('ㄱ') <= ascii(tmpStr) and ascii(tmpStr) <= ascii('ㅎ') then chr(ascii(tmpStr))
when tmpStr < '나' then 'ㄱ'
when tmpStr < '다' then 'ㄴ'
when tmpStr < '라' then 'ㄷ'
when tmpStr < '마' then 'ㄹ'
when tmpStr < '바' then 'ㅁ'
when tmpStr < '사' then 'ㅂ'
when tmpStr < '아' then 'ㅅ'
when tmpStr < '자' then 'ㅇ'
when tmpStr < '차' then 'ㅈ'
when tmpStr < '카' then 'ㅊ'
when tmpStr < '타' then 'ㅋ'
when tmpStr < '파' then 'ㅌ'
when tmpStr < '하' then 'ㅍ'
else 'ㅎ'
end;
end loop;
return returnStr;
end;
'DB > ORACLE' 카테고리의 다른 글
[Oracle] 한글 제거 (0) | 2021.06.25 |
---|---|
[Oracle] 한글 초성검색 간단한 버전 (0) | 2021.06.25 |
[Oracle] 오라클 함수 기본 정리 (0) | 2021.06.25 |
[Oracle] 현재 세션에서 다른 데이터 베이스 접속 SID 변경 (0) | 2021.06.25 |
[Oracle] 기본 형변환 (0) | 2021.06.25 |