더북(TheBook)

⑥ INSTR(str, substr, pos, occur), LENGTH(chr), LENGTHB(chr)

INSTR 함수는 str 문자열에서 substr과 일치하는 위치를 반환하는데, pos는 시작 위치로 디폴트 값은 1, occur은 몇 번째 일치하는지를 명시하며 디폴트 값은 1이다.

입력

    SELECT INSTR('내가 만약 외로울 때면, 내가 만약 괴로울 때면, 내가 만약 즐거울 때면', '만약') AS INSTR1,
           INSTR('내가 만약 외로울 때면, 내가 만약 괴로울 때면, 내가 만약 즐거울 때면', '만약', 5) AS INSTR2,
           INSTR('내가 만약 외로울 때면, 내가 만약 괴로울 때면, 내가 만약 즐거울 때면', '만약', 5, 2) AS INSTR3
      FROM DUAL;

결과

    INSTR1     INSTR2     INSTR3
    ---------- ---------- ----------
    4          18         32

첫 번째는 pos, occur 모두 생략해 디폴트 값이 1이 적용되어 첫 번째 ‘만약’이 있는 위치인 4를 반환했다. 두 번째 컬럼은 pos에 5를 명시해서 다섯 번째 글자부터 탐색하게 되므로 두 번째 ‘만약’이 있는 18을 반환했고, 마지막은 occur 값이 2이므로 18이 반환되었다.

LENGTH 함수는 매개변수로 들어온 문자열의 개수를 반환하며, LENGTHB 함수는 해당 문자열의 바이트 수를 반환한다.

입력

    SELECT LENGTH('대한민국'),
           LENGTHB('대한민국')
      FROM DUAL;

결과

    LENGTH('대한민국') LENGTHB('대한민국')
    ------------------ -------------------
                    4                   8

한글 한 글자가 2바이트를 차지하므로, LENGTHB는 8을 반환했음을 확인할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.