대덕인재/Oracle

[Oracle D-8] 문자열 함수(String Functions)

꼬마버거 2025. 4. 11. 18:12

 

 

✅ 자주 쓰는 Oracle 문자열 함수 정리

 

함수 이름 설명 예시
LENGTH(str) 문자열 길이 LENGTH('hello') → 5
SUBSTR(str, 시작위치, 길이) 문자열 자르기 SUBSTR('hello', 2, 3) → 'ell'
INSTR(str, 찾을문자) 특정 문자 위치 찾기 INSTR('hello', 'l') → 3
CONCAT(str1, str2) 문자열 붙이기 CONCAT('A', 'B') → 'AB'
`   `
LOWER(str) 소문자로 변환 LOWER('HELLO') → 'hello'
UPPER(str) 대문자로 변환 UPPER('hello') → 'HELLO'
TRIM(str) 앞뒤 공백 제거 TRIM(' hi ') → 'hi'
LTRIM(str) 왼쪽 공백 제거 LTRIM(' hi') → 'hi'
RTRIM(str) 오른쪽 공백 제거 RTRIM('hi ') → 'hi'
REPLACE(str, 찾을값, 바꿀값) 문자열 바꾸기 REPLACE('banana', 'na', 'NA') → 'baNANA'
LPAD(str, 길이, 채울문자) 왼쪽 채우기 LPAD('9', 3, '0') → '009'
RPAD(str, 길이, 채울문자) 오른쪽 채우기 RPAD('9', 3, '0') → '900'

 

 

 

📘 각 함수 예제 자세히 보기

1. LENGTH() — 길이 구하기

SELECT LENGTH('Oracle') AS 길이 FROM DUAL;  -- 결과: 6

2. SUBSTR() — 일부 잘라내기

SELECT SUBSTR('abcdef', 2, 3) AS 결과 FROM DUAL;  -- 'bcd'

3. INSTR() — 글자 위치 찾기

SELECT INSTR('hello world', 'o') AS 위치 FROM DUAL;  -- 결과: 5

4. CONCAT() 또는 || — 문자열 합치기

SELECT CONCAT('Hello', 'World') FROM DUAL;
SELECT 'Hello' || 'World' FROM DUAL;
-- 결과: HelloWorld

5. LOWER() / UPPER() — 대소문자 변경

SELECT LOWER('ORACLE'), UPPER('sql') FROM DUAL;
-- 결과: oracle / SQL

6. TRIM(), LTRIM(), RTRIM() — 공백 제거

SELECT TRIM('  Hello  ') FROM DUAL;   -- 'Hello'
SELECT LTRIM('  Hello') FROM DUAL;    -- 'Hello'
SELECT RTRIM('Hello  ') FROM DUAL;    -- 'Hello'

7. REPLACE() — 문자열 바꾸기

SELECT REPLACE('010-1234-5678', '-', '') AS 전화번호 FROM DUAL;
-- 결과: 01012345678

8. LPAD(), RPAD() — 문자열 채우기 (포맷 만들 때)

SELECT LPAD('5', 3, '0') AS 왼쪽채움 FROM DUAL;  -- 결과: '005'
SELECT RPAD('5', 3, '*') AS 오른쪽채움 FROM DUAL;  -- 결과: '5**'

 

📌 활용 예시

  • 주민번호 마스킹: SUBSTR(주민번호, 1, 6) || '-' || LPAD('*', 7, '*')
  • 핸드폰 번호 포맷 제거: REPLACE(전화번호, '-', '')
  • 이름 길이 제한: SUBSTR(이름, 1, 5)
  • 대소문자 구분 없이 비교: WHERE LOWER(이름) = 'kim'