기본 콘텐츠로 건너뛰기

7월, 2020의 게시물 표시

[심심] Oracle 초성검색 함수 만들기

 안녕하세요!  오랫만에 돌아온 카노 입니다. 오늘은 너무 심심해서 오라클(DB) 를 갖고 초성 찾기 함수를 만들어 볼 생각 입니다. 예) 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 < '마'