Patrick's 데이터 세상
텍스트 제어 함수 본문
텍스트 제어 함수
텍스트 문자열을 제어하는 데 사용되는 텍스트 함수입니다.
예를 들어 값의 앞뒤에 공백을 붙이고 잘라내거나, 대·소문자를 변환하는 등의 작업을 수행합니다.
* LENGTH
- 문자열 길이 구하는 함수
- 한글을 1byte로 계산
EX) SELECT LENGTH('AB한글*1') FROM DUAL;
결과) 6
* LENGTHB
- 한글을 2byte로 계산
(KO16KSC5601(한글 완성형), KO16MSWIN949는 한 글자를 2Byte로 인식하지만,
UTF8/AL32UTF8의 경우 한 글자를 3Byte로 인식합니다.
UTF8/AL32UTF8의 장점은 한글 정렬(Order by)이 가능하지만, 3Byte 길이를 소모합니다.)
EX) SELECT LENGTHB('AB한글*1') FROM DUAL;
결과) 8
* LOWER
- 문자열을 소문자로 변환
EX) SELECT LOWER('KIM JUNG SICK') NAME FROM DUAL;
결과) kim jung sick
* UPPER
- 문자열을 대문자로 변환
EX) SELECT UPPER('kim jung sick') NAME FROM DUAL;
결과) KIM JUNG SICK
* VSIZE
- 한글을 2byte로 계산
- 문자뿐 아니라 숫자, 날짜의 바이트도 계산합니다.
EX) SELECT VSIZE('AB한글*1') FROM DUAL;
결과) 8
* CONCAT
- 두 문자열을 결합합니다.
(= ||)
EX) SELECT CONCAT('Oracle', ' Korea') NAME FROM DUAL;
결과) Oracle Korea
* INITCAP
- 첫 번째 문자를 대문자로 변환
EX) SELECT INITCAP('kim jung sick') NAME FROM DUAL;
결과) Kim Jung Sick
* LPAD
- 왼쪽에 문자열을 끼어 놓는 역할.
n은 반환되는 문자열의 전체 길이.
char1의 문자열이 n보다 클 경우 char1을 n개 문자열 만큼 반환합니다.
EX) SELECT LPAD('JUNG-SICK', 15, ' *') NAME FROM DUAL;
결과) * *JUNG-SICK
* RPAD
- 오른쪽에 문자열을 끼어 놓는 역할
SELECT RPAD('JUNG-SICK', 10, '*') NAME FROM DUAL;
* SUBSTR
- SUBSTR(char, m, [n]) m번째 자리부터 길이가 n개인 문자열을 반환
EX) SELECT SUBSTR('JUNG-SICK', 3, 3) NAME FROM dual;
결과) NG-
EX) SELECT SUBSTR(SYSTEM_NAME, 3) SERVICE FROM DUAL;
- 3자리 이후 끝자리까지 자름
* SUBSTRB
- 바이트 단위로 계산하여 문자열을 치환하는 함수
EX) SELECT SUBSTRB('오라클 Oracle', 1, 3) FROM DUAL;
결과) 오
* REPLACE
- 문자열의 특정 문자를 다른 문자로 변환
EX) SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL;
결과) BLACK and BLUE
* TRANSLATE
- 지정된 문자열을 치환
EX) SELECT TRANSLATE('a1a2a3a4a5','a','A') FROM DUAL;
결과) A1A2A3A4A5
* INSTR
- 문자열이 포함되어 있는지를 조사하여 문자열의 개수를 반환
EX) SELECT INSTR('CORPORATE FLOOR','O') "Instring" FROM DUAL;
결과) 2
EX) SELECT SUBSTR(SYSTEM_NAME, INSTR(SYSTEM_NAME, '.', -1)+1) SERVICE FROM DUAL;
- 원하는 자릿수 이후부터 사용하고 싶을때
* TRIM
- 특정 문자를 제거합니다.
EX) SELECT TRIM(0 FROM 0009872348900) "TRIM Example" FROM DUAL;
* RTRIM 오른쪽부터 특정 문자 제거
EX) SELECT RTRIM(' aabacdbaeaa ',' ') FROM DUAL;
* LTRIM 왼쪽부터 특정 문자 제거
EX) SELECT LTRIM(' aabacdbaeaa ',' ') FROM DUAL;
* NVL 어떤 문자도 입력하지 않으면 기본적으로 공백이 제거 됨
EX) SELECT NVL(TRIM (' '),'공백') "TRIM Example" FROM DUAL;
* 변환형 함수
- TO_CHAR 숫자나 날짜를 문자열로 변환
- TO_NUMBER 문자열을 q숫자 변환
- TO_DATE 문자를 날짜로 변환
'Programming > Oracle' 카테고리의 다른 글
일반 집계 함수 (0) | 2020.06.21 |
---|---|
순위 함수 (0) | 2020.06.21 |
데이터 조작 함수 (0) | 2020.06.21 |
DCL - COMMIT, ROLLBACK, GRANT, REVOKE 구문 (0) | 2020.06.21 |
DCL - SQL 제어어 (0) | 2020.06.21 |