[Oracle] 오라클 문자열 위치 찾기 (INSTR, REGEXP_INSTR)
- 데이터베이스/오라클
- 2023. 8. 23.
오라클 쿼리문에서 문자열에서 특정 문자열의 위치를 찾을 때는 INSTR 함수와 오라클 10g부터 사용할 수 있는 REGEXP_INSTR 정규식 함수를 사용할 수 있다. INSTR 함수를 사용하여 문자열의 위치를 찾을때 동일한 문자열이 여러 개 존재해도 첫 번째 찾은 문자열의 위치를 반환하고 검색을 중지한다.
목차 |
문자열 앞에서 부터 찾기 (INSTR 함수)
SELECT INSTR('Oracle Database 21c Release', 'as')
FROM dual
INSTR("대상 문자열", "찾을 문자열")
INSTR 함수를 사용하여 문자열에서 특정 문자열의 위치를 찾을 수 있다.
문자열의 위치를 찾을 때 사용하는 아주 기본적인 방법이다.
처음 찾은 문자열의 시작 위치를 반환하고 검색을 중지한다.
문자열 찾은 횟수에 따른 위치 (INSTR 함수)
SELECT INSTR('Oracle Database 21c Release', 'as', 1, 2)
FROM dual
INSTR("대상 문자열", "찾을 문자열", "시작 위치", "찾은 횟수")
찾을 문자열이 여러 개 포함되어 있을 경우 찾은 횟수에 해당하는 위치를 반환할 수 있다.
두 번째 찾은 문자열의 위치를 반환한다.
문자열 뒤에서 부터 찾기 (INSTR 함수)
SELECT INSTR('Oracle Database 21c Release', 'as', -1)
FROM dual
INSTR("대상 문자열", "찾을 문자열", "뒤에서부터 검색(-1)")
세 번째 인자에 -1을 입력하여 문자열을 뒤에서부터 검색할 수 있다.
뒤에서부터 찾은 첫 번째 문자열의 위치를 반환한다.
정규식 함수로 문자열 위치 찾기 (REGEXP_INSTR 함수)
SELECT REGEXP_INSTR('Oracle Database 21c Release', 'as') AS result1
, REGEXP_INSTR('Oracle Database 21c Release', 'ac|ab|as') AS result2
, REGEXP_INSTR('Oracle Database 21c Release', '[0-9]') AS result3
FROM dual
REGEXP_INSTR("대상 문자열", "패턴")
오라클 10g 이상부터 REGEXP_INSTR 정규식 함수를 사용할 수 있으며, INSTR 함수의 기능 외에도 정규식을 사용하여 다양한 패턴으로 문자열의 위치를 찾을 수 있다.