728x90

Oracle SQL에서 문자열 내 특정 문자의 위치를 찾는 데 유용한 INSTR 함수에 대해 자세히 알아봅니다. 본 글은 실전 예제를 중심으로 구성하여 초보자와 실무 개발자가 쉽게 이해할 수 있도록 하였습니다.
1. INSTR 함수란?
INSTR 함수는 문자열에서 특정 문자나 문자열이 처음 또는 특정 번째로 나타나는 위치를 반환하는 함수입니다.
INSTR(string, substring [, start_position [, occurrence]])
string: 검색 대상 문자열substring: 검색할 문자 또는 문자열start_position(선택): 검색 시작 위치 (기본값 1)occurrence(선택): 찾고자 하는 substring의 등장 순서
2. 기본 사용 예제
SELECT INSTR('Oracle Database', 'a') AS result FROM dual;
-- 결과: 3
SELECT INSTR('Oracle Database', 'a', 1, 2) AS result FROM dual;
-- 결과: 9
3. 다양한 파라미터 조합 예제
SELECT INSTR('Oracle SQL Oracle', 'Oracle') AS result FROM dual;
-- 결과: 1 (첫 번째 Oracle의 시작 위치)
SELECT INSTR('Oracle SQL Oracle', 'Oracle', 1, 2) AS result FROM dual;
-- 결과: 13 (두 번째 Oracle의 시작 위치)
SELECT INSTR('Oracle SQL Oracle', 'oracle') AS result FROM dual;
-- 결과: 0 (대소문자 구분)
4. 실제 테이블에서의 활용 예제
예제 테이블: users
CREATE TABLE users (
id NUMBER,
full_name VARCHAR2(100),
email VARCHAR2(100)
);
INSERT INTO users VALUES (1, 'Kim Jisoo', 'jisoo.kim@domain.com');
INSERT INTO users VALUES (2, 'Lee Minho', 'lee.minho@domain.com');
@ 위치 찾기
SELECT
email,
INSTR(email, '@') AS at_position
FROM users;
도메인만 추출하기 (SUBSTR + INSTR)
SELECT
email,
SUBSTR(email, INSTR(email, '@') + 1) AS domain
FROM users;
5. INSTR vs REGEXP_INSTR 비교
| 항목 | INSTR | REGEXP_INSTR |
|---|---|---|
| 기능 | 단순 문자열 위치 | 정규표현식 기반 위치 |
| 정밀도 | 낮음 | 높음 |
| 복잡도 | 낮음 | 높음 |
| 성능 | 빠름 | 느림 (패턴 분석) |
6. 활용 팁 및 유의사항
- INSTR은 대소문자를 구분합니다. 필요 시 UPPER, LOWER 함수를 함께 사용하세요.
- start_position이 음수면 문자열 끝에서부터 계산합니다.
- 찾는 문자열이 없을 경우 결과는 0입니다.
7. 결론
INSTR 함수는 Oracle SQL에서 문자열 내 위치 검색 시 필수적으로 사용되는 함수입니다. 다양한 조건과 조합으로 활용이 가능하며, SUBSTR이나 LENGTH 함수와 함께 사용하면 더욱 강력한 문자열 처리 도구가 됩니다.
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] TRIM() 함수 완전 정복 : 공백 및 문자 제거 활용 법 (0) | 2025.06.03 |
|---|---|
| [ORACLE] LENGTH()로 문자열 길이 계산하기 : 기본부터 고급까지 (0) | 2025.06.03 |
| [ORACLE] SUBSTR() 활용 법 : 데이터 전처리에 강력한 함수 (0) | 2025.06.03 |
| [ORACLE] CONCAT() 함수로 텍스트 데이터 처리하는 법 (0) | 2025.06.03 |
| [ORACLE] REGR_SXY() 함수로 두 변수 간 선형 회귀 분석하기 (0) | 2025.06.03 |