INSTR 을 통해 위치 찾기 syntax
[INSTR | INSTRB | INSTRC | INSTR2 | INSTR4] (expression, searchString [, position [, occurrence]])
- expression : 위치를 찾으려는 대상 문자열입니다.
- searchString : 찾는 값입니다.
- position : 검색을 시작할 위치입니다. 선택사항이며 기본값은 1 입니다.
- occurrence : 몇 번째 발생을 찾을지 확인합니다. 선택사항이며 기본값은 1 입니다.
참고로 INSTR 함수는 접미사로 B, C, 2, 4가 붙는 기능도 있답니다. 각각 다음과 같은 역할을 합니다.
- INSTR : calculates lengths using characters as defined by the input character set.
- INSTRB : calculates lengths using bytes.
- INSTRC : calculates lengths using Unicode complete characters.
- INSTR2 : calculates lengths using UCS2 code points.
- INSTR4 : calculates lengths using UCS4 code points.
IndexOf 기능 example
- 예시1 : 'C' 를 찾습니다. 'C' 는 5번 째에 출현하기에 5 를 반환합니다.
- 예시2 : 'C' 를 1번 문자부터 찾아가는데 2번 째 출현을 찾도록 합니다.
- 예시3 : 'C' 를 1번 문자부터 찾아가는데 3번 째 출현을 찾도록 합니다.
- 예시4 : 'D' 를 찾습니다. 'D' 문자는 없기에 0 을 반환합니다.
- 참고로 'C' 를 1, 4 로 찾았으면 4번 째 출현은 없기에 이 또한 0 을 반환합니다.
SET SERVEROUTPUT ON
DECLARE
VEXPRESSION VARCHAR2 (100) := 'AABBCCABC';
VSEARCH VARCHAR2 (100) := 'C';
BEGIN
DBMS_OUTPUT.PUT_LINE ('1: ' || INSTR (VEXPRESSION, 'C'));
DBMS_OUTPUT.PUT_LINE ('2: ' || INSTR (VEXPRESSION, 'C', 1, 2));
DBMS_OUTPUT.PUT_LINE ('3: ' || INSTR (VEXPRESSION, 'C', 1, 3));
DBMS_OUTPUT.PUT_LINE ('4: ' || INSTR (VEXPRESSION, 'D'));
END;
/