기본 콘텐츠로 건너뛰기

[심심] 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 < '마' 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;


이렇게 완성 합니다.

loop 를 이용하여 입력받은 varchar2 문자를 substr을 이용하여 한글자씩 
모음으로 바꾸고 그 모음이 위하는 조건에 따라 'ㄱ','ㄴ' 등등으로 바꾸어 
returnStr <- 이어 붙이고 

그 결과를 output 합니다.






댓글

이 블로그의 인기 게시물

우분투[ubuntu] 런처(윈도우 메뉴)에 아이콘 추가 하기.

안녕하세요.  KANO 입니다. 오늘은 간단하게 우분투 바로가기 아이콘 생성을 해 볼 건데요. 우분투 혹은 리눅스 사용자들은 프로그램을 설치 하지 않고, 프로그램을 실행해야 하는 프로그램들이 있습니다 . 예) 이클립스. 등등.. 이것을 조금 편하게 할 수 없을까? 생각하다가 저도 만들어 보는 시간을 갖으면서 글을 적어 봅니다. 제가 등록할 프로그램은 Pycharm 2017.03 버전인데요. 우분투에서 우분투 소프트웨어 관리자에서 추가가 가능 하긴 합니다..( _ _ )   현재 런쳐 메뉴의 프로그램에는 Pycharm이 보이지 않는데요. 아이콘 등록을 위하여 터미널을 열어서 명령어로 실행할 수 있게 만들어 봅시다  sudo ln -s  실행 파일 경로,  symlink 경로 입니다.  실행파일 경로만 바꿔 주시면  될 것 같네요.. ㅎㅎ 그럼 한번 실행을 해보도록 하죠~ 정상적으로 실행이 되네요.  그럼 이제 아이콘을 생성해보도록 합니다. 아이콘 생성 방법은 2가지 인데요 우선 첫번째 방법을 이용해 보도록 하죠. .desktop 파일을 생성 하는 방법입니다. 런처 아이콘 경로에  만들려는 이름.desktop 을 생성합니다. 저는 pycharm 이라서 Pycharm.desktop 이라고 vi 편집기를 이용하여 파일을 생성 할께요. vi 편집기가 열리면 다음과 같이 적어 주세요.  [Desktop Entry] Version =x.y    #프로그램 버전 (안 적어도 무방합니다.) Name=프로그램 이름 Comment=프로그램 설명 Exec=프로그램 실행 명령어 #저는 pycharm.sh 를 입력했습니다. Icon=아이콘 경로 Terminal=false #터미널 실행 여부 입니다. (True : 실행, False:실행안함) Type=Application #실행 형식입니다. 이건 수정하지 말아주세요~ Catego

[linux] ubuntu 16.04 메뉴, 런처 없어짐.. (hide menu, luncha...)

우분투 사용을 하다가 보면 가끔 필요 없는 프로그램 을 삭제 해야 할 때 가 있다. ex) sudo apt-get remove --purge XXXXXXX 삭제를 하고 제부팅을 하면.. 하하하하하하~~!!! 메뉴 어디갔나요?;;;;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 멘탈이 나갈거같네요..\ 우선 아는데로 쳐보기로 합니다.. sudo apt-get install ubuntu-desktop sudo apt-get install unity-control-center sudo apt-get install unity-control-center-signon sudo apt-get install gnome-control-center-unity sudo reboot 여기서 해결이 되나요??';  저는 안되서 구글링을... Enter the following commands:- Ctrl+Alt+F1 login there with username and password WARNING! THE FOLLOWING COMMAND WILL TERMINATE YOUR ACTIVE SESSION! try: sudo service lightdm restart If restarting lightdm doesn't fix the problem, install aptitude and then install unity : sudo apt-get install aptitude sudo apt-get update && sudo aptitude -f install && sudo aptitude dist-upgrade sudo aptitude install unity Read the outputs carefully. If you do have broken dependencies, aptitude will give you the "solution" of NOT installing u