Database/Oracle

Oracle Datebase - 함수_단일행 함수_문자처리함수

seandoesdev 2023. 7. 28. 01:40

INITCAP( 컬럼명| 표현식)

각 단어라기보다 공백으로 구분된 각각의 문자들의 첫 문자를 대문자로 바꾸고, 나머지 문자는  소문자로 변경하여 반환하는 함수이다.

SELECT INITCAP('HELLO ORACLE DB')
FROM DUAL;

 

UPPER( 컬럼명| 표현식)

모든 문자를 대문자로 변환하여 반환하는 함수이다.

SELECT UPPER('Do you know sql') AS "UPPER"
FROM DUAL;

 

LOWER( 컬럼명| 표현식)

모든 문자를 소문자로 변경하여 반환하는 함수이다.

SELECT LOWER('HEL LOW sql')
FROM DUAL;

 

CONCAT( 컬럼명| 표현식, 컬럼명2| 표현식2)

두 개의 문자열을 연결해주는 함수이다.

SELECT CONCAT('아저씨', '발냄새나요')
FROM DUAL;

 

LENGTH( 컬럼명| 표현식)

문자열 길이를 반환하는 함수이다.

SELECT LENGTH('LENGTH')
FROM DUAL;

 

INSRT( 컬럼명| 표현식, 검색값, [m ,n] )

문자열에서 특정 문자가 나타나는 위치를 반환한다.

SELECT INSTR('MILLER' , 'L', 1 , 2 ), INSTR('MILLER' , 'X', 1 , 2 )
FROM dual;
-- 1번째 문자부터 시작해서 2번째로 일치하는 문자의 위치를 반환한다.
-- 프로그래밍 언어와 달리 문자의 인덱스는 1부터 시작한다.

 

SUBSTR( 컬럼명| 표현식, m [,n] )

문자열에서 일부분의 문자열을 추출하는 함수이다.

SELECT SUBSTR('900303-1234567' , 8 , 1 ) 
FROM dual;
-- 주어진 문자의 8번째부터 1개의 문자열을 반환한다.
SELECT SUBSTR('900303-1234567' , 8 ) 
FROM dual;
-- 8번째부터 나머지 문자열 전부를 반환한다.
SELECT SUBSTR('900303-1234567' , -8 ) 
FROM dual;
--뒤에서 8번째부터 나머지 모든 문자열을 반환한다.

 

REPLACE( 컬럼명| 표현식, 's1', 's2' )

특정 문자열을 다른 문자열로 대체하는 함수이다.

SELECT REPLACE('JACK and JUE' , 'J' , 'BL' ) 
FROM dual;

 

LPAD( 컬럼명| 표현식, n , 'str' )

문자열을 오른쪽 정렬 후에 특정 문자를 왼쪽부터 지정한 문자로 채우는 함수이다.

SELECT LPAD('MILLER' , 10 , '*' ) 
FROM dual;

 

RPAD( 컬럼명| 표현식, n , 'str' )

문자열을 왼쪽 정렬 후에 특정 문자를 오른쪽부터 지정한 문자로 채우는 함수이다.

SELECT RPAD('MILLER' , 10 , '*' ) 
FROM dual;
SELECT SUBSTR('900303-1234567',1,8)||'******' 주민번호 
FROM dual;
SELECT RPAD(SUBSTR('900303-1234567',1,8),14,'*' ) 주민번호 
FROM dual;
SELECT REPLACE( '900303-1234567', SUBSTR('900303-1234567', 9 ) , '*****' )  
FROM dual;

 

LTRIM( 컬럼명| 표현식, ‘str' )

문자열의 첫 문자 부터 시작해서 지정된 문자와 일치하지 않는 문자가 나올 때까지 계속적으로 해당문자를 제 거하는 함수이다.

SELECT LTRIM('MILLER', 'M')
FROM dual;
SELECT LTRIM(' MILLER '), LENGTH(LTRIM(' MILLER '))
FROM dual;

 

RTRIM( 컬럼명| 표현식, ‘str' )

문자열의 마지막 문자부터 시작해서 지정된 문자와 일치하지 않는 문자가 나올 때까지 계속적으로 해당문자를 제거하는 함수이다.

SELECT RTRIM('MILLER', 'R')
FROM dual;
SELECT RTRIM(' MILLER '), LENGTH(RTRIM(' MILLER '))
FROM dual;

 

TRIM

TRIM( LEADING 'str' FROM 컬럼명|표현식 )

TRIM( TRAILING 'str' FROM 컬럼명|표현식 )

TRIM( BOTH 'str' FROM 컬럼명|표현식 )

문자열의 양쪽을 모두 삭제하는 함수이다.

SELECT TRIM( '0' FROM '0001234567000' ) 
FROM dual;
SELECT TRIM( LEADING '0' FROM '0001234567000' ) 
FROM dual;
--왼쪽만 삭제한다.
SELECT TRIM( TRAILING '0' FROM '0001234567000' ) 
FROM dual;
--오른쪽만 삭제한다.