All thing of the world!

Oracle INSTR 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle INSTR 설명 : 오라클 함수

WorldSeeker 2021. 4. 2. 20:57

1. 함수의 목적 
   
    Oracle INSTR은 찾고자 하는 문자열의 시작위치를 반환한다. 


2. 샘플을 통한 개념 퀵뷰

SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring"
FROM DUAL;

Instring
----------
14

3. 사용방법 

INSTR계열 함수는 위와같이 총 5개가 있다. 하는 역활은 똑같지만 아래와 같은 차이가 있다.

■ INSTR : string 파라미터의 입력 케릭터셋 그대로 위치를 찾고 리턴한다.
■ INSTRB : string 파리미터의 케릭터셋을  byte 케릭터셋으로 간주한다.
■ INSTRC : string 파라미터의 케릭터셋을 unicode 완성형 케릭터으로 간주한다. 
■ INSTR2 : string 파라미터를 UCS2 code point로 간주한다.
■ INSTR4 : string 파라미터의 케릭터셋을 UCS4 code point로 간주한다.

4. 함수 PARAMETER 설명

찾고자 하는 문자를 못찾았다면 0을 반환한다.


[string]

찾고자하는 문자가 들어있는 소스문자열이다.

허용되는 데이터의 형식은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB 또는 NCLOB이며, INSTRC, INSTR2과 INSTR4의 경우 CLOB과 NCLOB은 허용하지 않는다.

[substring]

찾고자하는 문자열을 입력한다.
허용되는 데이터의 형식은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB 또는 NCLOB이다.

[position]

찾고자하는 문자의 검색을 시작할 문자열내의 위치를 지정한다.
양수는 문자열의 시작부터 몇번째 문자부터 검색을 시작한다라는 의미고, 음수는 문자열의 끝에서 몇번째 문자부터 검색을 시작한다라는 의미다.
당연히 0은 받아들이지 않는다.
생략하면 기본값으로 1이 들어간다.

[occurrence]

발생빈도에 관련된 파라미터로, 주어진 문자가 몇번째 발생하면 위치를 리턴할 것인가를 정의한다.

음수는 허용되지 않는다.
생략하면 기본값 1이 들어간다.

5. 다양한 샘플표현

example1) position 파라미터를 음수로 표현하면 문자열의 끝부터 3번째 자리부터 거슬러 올라가면서 찾는다. 그렇지만 위치를 반환한 결과값은 문자열의 시작을 제일 왼쪽 문자열 시작점부터 카운트함을 주의하자.

SELECT INSTR('CORPORATE FLOOR','OR', -3, 2) "Reversed Instring"
FROM DUAL;


Reversed Instring
-----------------
2


example2) 2바이트 데이터베이스 문자셋에선 다음과 같다.

SELECT INSTRB('CORPORATE FLOOR','OR',5,2) "Instring in bytes"
FROM DUAL;

Instring in bytes
-----------------
27

example3) 찾고자 하는 'd'문자열이 소스문자열에 없으면 0을 반환한다. 

select instr('abc','d',1,1)
  from dual;

INSTR('ABC','D',1,1)
--------------------
                   0

Comments