본문 바로가기
Database/Oracle

[ORACLE] SUBSTR() 활용 법 : 데이터 전처리에 강력한 함수

by Papa Martino V 2025. 6. 3.
728x90

오라클 SUBSTR() 활용법: 데이터 전처리에 강력한 함수
[Oracle] SUBSTR

 

Oracle SQL에서 문자열의 일부분을 추출하는 데 사용되는 SUBSTR 함수에 대해 자세히 설명합니다. 본 글은 개발자와 데이터 분석가가 쉽게 이해하고 활용할 수 있도록 실전 예제 중심으로 구성되어 있습니다.

1. SUBSTR 함수란?

SUBSTR 함수는 문자열에서 특정 위치의 문자부터 원하는 길이만큼 추출하는 함수입니다. 형식은 다음과 같습니다.

SUBSTR(string, start_position, [length])
  • string: 대상 문자열
  • start_position: 추출 시작 위치 (1부터 시작)
  • length (선택): 추출할 문자 수

2. 기본 사용 예제

SELECT SUBSTR('Oracle Database', 1, 6) AS result FROM dual;
-- 결과: Oracle
SELECT SUBSTR('Oracle Database', 8) AS result FROM dual;
-- 결과: Database

3. 음수 인덱스 사용

음수를 지정하면 문자열의 끝에서부터 계산됩니다.

SELECT SUBSTR('Oracle Database', -8, 4) AS result FROM dual;
-- 결과: Data

4. 실제 테이블 활용 예제

예제 테이블: users

CREATE TABLE users (
  user_id NUMBER,
  full_name VARCHAR2(100),
  email VARCHAR2(100)
);

INSERT INTO users VALUES (1, 'Kim Jisoo', 'jisoo@sample.com');
INSERT INTO users VALUES (2, 'Lee Minho', 'minho@sample.com');

이메일 도메인 추출 예제

SELECT 
  email,
  SUBSTR(email, INSTR(email, '@') + 1) AS domain
FROM users;
-- 결과: sample.com

5. SUBSTR vs REGEXP_SUBSTR

항목 SUBSTR REGEXP_SUBSTR
기능 문자열 일부 추출 정규표현식 기반 추출
정밀도 위치 중심 패턴 중심
복잡도 낮음 높음
유연성 보통 높음

6. 활용 팁 및 유의사항

  • INSTR 함수와 자주 함께 사용됩니다.
  • 음수 인덱스 사용 시 시작 위치가 뒤에서부터 계산됩니다.
  • 대상 문자열이 NULL일 경우 결과도 NULL이 됩니다.

7. 결론

SUBSTR 함수는 Oracle SQL에서 문자열을 다룰 때 가장 기본적이면서도 강력한 함수입니다. 다양한 조건에서 데이터를 가공할 수 있어 보고서, ETL, 데이터 분석 등 여러 분야에서 널리 사용됩니다.

📚 참고 자료

  • Oracle 공식 문서: docs.oracle.com
  • SQL Cookbook (O'Reilly)
  • Oracle SQL Developer 가이드
728x90