본문 바로가기
DATABASE/ORACLE

[Oracle] SQL 문자 함수

문자 함수






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,3FROM DUAL;
 
SUB
---
com
cs

 2

 3

10 

11 

12 

13 

 14

15 

16 

17 

 

 

 l

시작위치 인자 값을 음수 값으로 줄 수 있는데, 이떄는 문자열의 앞쪽이 아닌 뒤쪽에서 부터 세어서 시작위치를 잡는다.



SUBSTRB : 문자열을 추출하기 위해서 문자를 셀 때 문자의 개수가 아닌 그 문자가 메모리에 저장되는 바이트 수로 센다.

영문자 1자는 메모리에 1Byte로 저장되기 때문에 SUBSTR 함수와 SUBSTRB 함수를 어느 함수를 사용하여도 동일하다.

하지만 한글은 1자에 2Byte


1
2
3
4
5
SQL> SELECT SUBSTR('웰컴투오라클',4,3), SUBSTRB('웰컴투오라클',3,4FROM 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,2FROM DUAL;
 
INSTR('WELCOMTOORACLE','O',6,2)
-------------------------------
                             11
cs

6번째 자리부터 2번째 0를 찾는다.




INSTRB : 기준을 바이트로 문자의 위치를 알아 낸다


1
2
3
4
5
SQL> SELECT INSTR('데이터베이스','이',3,1), INSTRB('데이터베이스','이',3,1FROM 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