✅ 자주 쓰는 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'