문자 함수
UPPER : 문자 값을 대문자로 변환
1 2 3 4 5 | SQL> SELECT 'Welcome to Oracle', UPPER('Welcome to Oracle') FROM DUAL; 'WELCOMETOORACLE' UPPER('WELCOMETOO ----------------- ----------------- Welcome to Oracle WELCOME TO ORACLE | cs |
LOWER : 문자 값을 소문자로 변환
1 2 3 4 5 | SQL> SELECT 'Welcome to Oracle', LOWER('Welcome to Oracle') FROM DUAL; 'WELCOMETOORACLE' LOWER('WELCOMETOO ----------------- ----------------- Welcome to Oracle welcome to oracle | cs |
INITCAP : 문자열의 이니셜만 대문자로 변경
1 2 3 4 5 | SQL> SELECT 'Welcome to Oracle', INITCAP('Welcome to Oracle') FROM DUAL; 'WELCOMETOORACLE' INITCAP('WELCOMET ----------------- ----------------- Welcome to Oracle Welcome To Oracle | cs |
LENGTH : 컬럼에 저장된 데이터 값이 몇개의 문자로 구성 되었는지 길이를 알려주는 함수
1 2 3 4 5 | SQL> SELECT LENGTH('oracle'), LENGTH('오라클') FROM DUAL; LENGTH('ORACLE') LENGTH('오라클') ---------------- ---------------- 6 3 | cs |
LENGTHB : 바이트 수를 알려주는 함수
1 2 3 4 5 | SQL> SELECT LENGTHB('oracle'), LENGTHB('오라클') FROM DUAL; LENGTHB('ORACLE') LENGTHB('오라클') ----------------- ----------------- 6 6 | cs |
한글 1자는 2Byte를 차지 한다.
SUBSTR : 대상 문자열이나 칼럼의 자료에서 시작 위치부터 선택 개수만큼의 문자를 추출 한다.
SELECT SUBSTR(대상,시작위치,추출할 개수)
1 2 3 4 5 | SQL> SELECT SUBSTR('Welcom to Oracle',4,3) FROM DUAL; SUB --- com | cs |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
W |
e |
l |
c |
o |
m |
e |
|
t |
o |
|
O |
r |
a |
c |
l |
e |
시작위치 인자 값을 음수 값으로 줄 수 있는데, 이떄는 문자열의 앞쪽이 아닌 뒤쪽에서 부터 세어서 시작위치를 잡는다.
SUBSTRB : 문자열을 추출하기 위해서 문자를 셀 때 문자의 개수가 아닌 그 문자가 메모리에 저장되는 바이트 수로 센다.
영문자 1자는 메모리에 1Byte로 저장되기 때문에 SUBSTR 함수와 SUBSTRB 함수를 어느 함수를 사용하여도 동일하다.
하지만 한글은 1자에 2Byte
1 2 3 4 5 | SQL> SELECT SUBSTR('웰컴투오라클',4,3), SUBSTRB('웰컴투오라클',3,4) FROM DUAL; SUBSTR SUBS ------ ---- 오라클 컴투 | cs |
컴→ 2byre 투→2byre 라서, 컴투가 출력
INSTR : 특정 문자가 나타나는 위치를 알려준다
1 2 3 4 5 | SQL> SELECT INSTR('WELCOM TO ORACLE','O') FROM DUAL; INSTR('WELCOMTOORACLE','O') --------------------------- 5 | cs |
INSTR(대상, 찾을글자, 시작위치, 몇번째 발견)
시작위치와 몇번째 발견을 생략한 채 사용한 것은 모두 1로 간주된다.
1 2 3 4 5 | SQL> SELECT INSTR('WELCOM TO ORACLE','O',6,2) FROM DUAL; INSTR('WELCOMTOORACLE','O',6,2) ------------------------------- 11 | cs |
6번째 자리부터 2번째 0를 찾는다.
INSTRB : 기준을 바이트로 문자의 위치를 알아 낸다
1 2 3 4 5 | SQL> SELECT INSTR('데이터베이스','이',3,1), INSTRB('데이터베이스','이',3,1) FROM DUAL; INSTR('데이터베이스','이',3,1) INSTRB('데이터베이스','이',3,1) ------------------------------ ------------------------------- 5 3 | cs |
LPAD/RPAD : 문자열을 명시된 자리수에서 오른쪽, 왼쪽 자리를 특정 기호로 채운다.
1 2 3 4 5 | SQL> SELECT LPAD('ORACLE',20,'#') FROM DUAL; LPAD('ORACLE',20,'#' -------------------- ##############ORACLE | cs |
LTRIM/RTRIM : 문자열의 왼쪽(앞)의 공백 문자들을 삭제
1 2 3 4 5 | SQL> SELECT RTRIM(' ORACLE ') FROM DUAL; RTRIM('OR --------- ORACLE | cs |
TRIM : 양측 모두 제거
1 2 3 4 5 | SQL> SELECT TRIM(' ORACLE ') FROM DUAL; TRIM(' ------ ORACLE | cs |
1 2 3 4 5 | SQL> SELECT TRIM(' Oracle is easy ') FROM DUAL; TRIM('ORACLEIS -------------- Oracle is easy | cs |
문자열의 양측만 제거 한다는 것을 다시 확인
'DATABASE > ORACLE' 카테고리의 다른 글
[Oracle] SQL 조건식 (0) | 2018.04.20 |
---|---|
[Oracle] SQL 날짜 함수 (1) | 2018.04.19 |
[Oracle] SQL 숫자 함수 (0) | 2018.04.19 |
[Oracle] SQL LIKE / SORT (0) | 2018.04.19 |
[Oracle] SQL 논리 연산자 / Between in (0) | 2018.04.19 |