Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 5.2 Character Functions (문자형 함수) – 대나무숲

5.2 Character Functions (문자형 함수)

출처 URL : http://www.gurubee.net/lecture/1025

문자형 함수란 CHAR, VARCHAR2 타입을 인수로 받아 VARCHAR2 타입의 값을 반환하는 함수이다.

CONCAT(char1, char2)

CONCAT 함수는 Concatenation의 약자로 두 문자를 결합하는 역할을 한며, “||” 연산자와 같은 역할을 한다.

-- CONCAT 예제
SELECT CONCAT('www.', 'oracleclub')||'.com' name FROM DUAL;
 
NAME
------------------
www.gurubee.net

INITCAP(char), LOWER(char), UPPER(char)

INITCAP : 주어진 문자열의 첫 번째 문자를 대문자로 변환시켜 준다.

LOWER : 주어진 문자열을 소문자로 변환시켜 준다.

UPPER : 주어진 문자열을 대문자로 변환시켜 준다.

-- INITCAP, LOWER, UPPER 예제
SELECT INITCAP('oracleclub') name FROM DUAL
 UNION ALL
SELECT UPPER('oracleclub') name FROM DUAL
 UNION ALL
SELECT LOWER('oracleclub') name FROM DUAL;
 
NAME
----------
Oracleclub
ORACLECLUB
oracleclub

LPAD(char1, n [,char2]), RPAD(char1, n [,char2])

LPAD : 왼쪽에 문자열을 끼어 놓는 역할을 한다.

RPAD : 오른쪽에 문자열을 끼어 놓는 역할을 한다.

n은 반환되는 문자열의 전체 길이를 나타내며, char1의 문자열이 n보다 클 경우 char1을 n개 문자열 만큼 반환 한다.

-- LPAD, RPAD 예제
SELECT LPAD('oracleclub', 12, '*') name FROM DUAL
 UNION ALL
SELECT RPAD('oracleclub', 12, '*') name FROM DUAL;
 
NAME
------------
**oracleclub
oracleclub**

SUBSTR(char, m ,[n]), SUBSTRB(char, m ,[n])

SUBSTR 함수는 m 번째 자리부터 길이가 n개인 문자열을 반환 한다.

m이 음수일 경우에는 뒤에서 m 번째 문자부터 n개의 문자를 반환한다.

SUBSTRB 함수에서 B는 Byte단위로 처리하겠다는 의미이다.

-- 세번째 이후 문자열 반환.
SELECT SUBSTR('oracleclub', 3) name FROM DUAL;
 
NAME
--------
acleclub
 
 
-- 세번째 이후 네개의 문자열 반환.
SELECT SUBSTR('oracleclub', 3, 4) name FROM DUAL;
 
NAME
----
acle
 
 
-- 뒤에서 세번째아후 두개의 문자열 반환.
SELECT SUBSTR('oracleclub', -3, 2) name FROM DUAL;
 
NA
--
lu
 
 
-- DB가 UTF-8인 경우 아래 SQL의 결과는?.
SELECT SUBSTRB('오라클클럽',1) name FROM DUAL
 UNION ALL
SELECT SUBSTRB('오라클클럽',3) name FROM DUAL;

LENGTH(char), LENGTHB(char)

문자열의 길이를 반환 한다.

-- 문자열의 LENGTH를 조회하는 예제.
SELECT LENGTH('오라클클럽') len FROM DUAL
 UNION ALL
SELECT LENGTHB('오라클클럽') len FROM DUAL;
 
-- DB가 UTF-8인 경우
LEN
--------
       5
      15

REPLACE(char1, str1, str2)

REPLACE는 문자열의 특정 문자를 다른 문자로 변환 한다.

-- 간단한 REPLACE 예이다.
SELECT REPLACE('oracleclub','oracle','db') name FROM DUAL;
 
NAME
------
dbclub 
 
 
-- 대소문자를 구분한다는 것을 알수 있다.
SELECT REPLACE('OracleClub','oracle','DB') name  FROM DUAL
 UNION ALL
SELECT REPLACE('OracleClub','Oracle','DB') name  FROM DUAL;
 
NAME
----------
OracleClub
DBClub 

INSTR (char1, str1, m, n)

문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환 한다. 지정한 문자열이 발견되지 않으면 0이 반환 된다.

char1 : 지정문자, str1 : 검색문자, m:시작위치, n:검색순위

-- 지정한 문자 OK가 발견되지 않아 0을 반환.
SELECT INSTR('CORPORATE FLOOR','OK') idx FROM DUAL;
 
IDX
----------
         0
 
 
-- OR이 있는 위치 2를 반환. 왼쪽부터 비교를 한다는 것을 알 수 있다.
SELECT INSTR('CORPORATE FLOOR','OR') idx FROM DUAL;
 
IDX
----------
         2
 
 
-- 왼쪽에서 세 번째부터 시작을 해서 검색된 OR의 위치를 반환 한다.
SELECT INSTR('CORPORATE FLOOR','OR', 3) idx FROM DUAL;
 
IDX
----------
         5
 
 
-- 왼쪽에서 세 번째부터 시작을 해서 비교를 하여 OR이 두 번째 검색되는 지점의 위치를 반환 한다.
SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) idx FROM DUAL;
 
IDX
----------
        14

TRIM (char1[,char2]), LTRIM (char1[,char2]), RTRIM (char1[,char2])

TRIM : 특정한 문자를 제거 한다. 제거할 문자를 입력하지 않으면 기본적으로 공백이 제거 된다.

LTRIM : 왼쪽부터 문자를 제거 한다. 제거할 문자를 입력하지 않으면 기본적으로 왼쪽 공백이 제거 된다.

RTRIM : 오른쪽부터 문자를 제거 한다. 제거할 문자를 입력하지 않으면 기본적으로 오른쪽 공백이 제거 된다.

-- o와 공백을 제거 하는 TRIM 예제이다.
SELECT TRIM('o' FROM 'oracleclub') name FROM DUAL
UNION ALL
SELECT TRIM(' oracleclub ') name FROM DUAL;
 
NAME
----------
racleclub
oracleclub
 
 
-- 왼쪽의 문자열을 TRIM하는 예제이다. 
-- 공백의 경우 왼쪽 공백만 제거 되는 것을 확인 할 수 있다.
SELECT LTRIM('oracleclub','oracle') name FROM DUAL
UNION ALL
SELECT REPLACE(LTRIM(' oracleclub '),' ','*') name FROM DUAL;
 
NAME
-----------
ub
oracleclub*
 
 
-- 오른쪽의 문자열을 TRIM 하는 예제이다. 
-- 공백의 경우 오른쪽 공백만 제거 되는 것을 확인 할 수 있다.
SELECT RTRIM('oracleclub','club') name FROM DUAL
UNION ALL
SELECT REPLACE(RTRIM(' oracleclub '),' ','*') name FROM DUAL;
 
NAME
-----------
oracle
*oracleclub

Oracle Character Functions

CHR
CONCAT
INITCAP
LOWER
LPAD
LTRIM
NLS_INITCAP
NLS_LOWER
NLSSORT
NLS_UPPER
REGEXP_REPLACE
REGEXP_SUBSTR
REPLACE
RPAD
RTRIM
SOUNDEX
SUBSTR
TRANSLATE
TREAT
TRIM
UPPER

참고링크

SQL 전문가 가이드 – 제6절 함수(FUNCTION)


답글 남기기 0

Your email address will not be published. Required fields are marked *