본문 바로가기

닷컴's_열공/Database

오라클 구분자로 구분하여 문자열 자르기.. substr ,, instr

SELECT  SUBSTR(MSG, 1, INSTR(MSG, '|', 1, 1) - 1) MSG_1,
        SUBSTR(MSG, INSTR(MSG, '|', 1, 1) + 1, INSTR(MSG, '|', 1, 2) - INSTR(MSG, '|', 1, 1) - 1) MSG_2,
        SUBSTR(MSG, INSTR(MSG, '|', 1, 2) + 1, INSTR(MSG, '|', 1, 3) - INSTR(MSG, '|', 1, 2) - 1) MSG_3,
        SUBSTR(MSG, INSTR(MSG, '|', 1, 3) + 1, INSTR(MSG, '|', 1, 4) - INSTR(MSG, '|', 1, 3) - 1) MSG_4,
        SUBSTR(MSG, INSTR(MSG, '|', 1, 4) + 1) MSG_5
FROM (SELECT '111|222|333|444|555' MSG FROM DUAL)

[출처] 오라클 문자열 자르기 SUBSTR, INSTR..|작성자 또식이

 

※ instr 함수정의 : 찾고자하는 문자열의 인덱스를 리턴한다. 
- instr(검색대상문자열 , 찾고자하는문자열 , 검색대상문자열의찾기를시작할인덱스 [, 몇번째발견한것인지선언]   )
ex) INSTR(MSG, '|', 2, 3) 을 실행 하면 
     3번째 파라미터의 의미는   MSG문자열의 2번째 인덱스 부터(예를들어 MSG문자열이 ='1234567' 
    라고 가정하면 '234567' 을 대상) 검색 하라는 뜻이다. 
   , 4번째 파라미터의 의미는  찾고자하는 문자열 '|' 이 검색대상중에 여러번 존재할때 선언한 번째의 인덱스를 
    리턴하라는 의미이다.

'닷컴's_열공 > Database' 카테고리의 다른 글

오라클 JOB  (0) 2012.04.20
PL/SQL 블록 예제  (0) 2012.04.20
TOAD 개발하기 좋은 폰트 만들기  (0) 2010.12.17
행을 열로 바꿔보자.  (0) 2009.03.20
sybase - oracle 차이점  (0) 2009.02.13