본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_문자함수( LPAD, RPAD : 문자열 채우기)

by 썸머워즈 2019. 2. 15.
반응형

LPAD

- LPAD(char, n, [char2]) 함수는 char 문자열의 길이와 n을 비교해 남은 수만큼 왼쪽에 char2를 채워주는 함수이다.

- n은 채워넣을 문자를 포함한 총 문자열의 길이이다.

SELECT LPAD('oracleClub', 12, '*') result FROM DUAL UNION --**oracleClub
SELECT LPAD('oracleClub', 17, '#') result FROM DUAL UNION --#######oracleClub

RPAD

LPAD(char, n, [char2]) 함수는 char 문자열의 길이와 n을 비교해 남은 수만큼 오른쪽에 char2를 채워주는 함수이다.

- n은 채워넣을 문자를 포함한 총 문자열의 길이이다.

SELECT RPAD('oracleClub', 12, '*') result FROM DUAL UNION --oracleClub**
SELECT RPAD('oracleClub', 17, '#') result FROM DUAL UNION --oracleClub#######

 

이렇게 고정된 길이에 따라 왼쪽과 오른쪽에 채워주는 오라클 함수인 LPAD 와 RPAD에 대해 알아봤는데,

각각의 기본 사용법만 보면 충분히 따라서 사용이 가능하다.

 

하지만 사용하기에 앞서 주의해야할게 몇개 있는데 예제를 통해 알아보도록 하자.


예제 1) char2 부분 (채워주는 문자열)이 생략 되었을 경우

SELECT LPAD('oracleClub', 12) result FROM DUAL UNION --"  oracleClub"
 
SELECT RPAD('oracleClub', 17) result FROM DUAL UNION --"oracleClub    "

 

세번째 매개변수인 char2 부분이 생략 되었을 경우 기본값으로 빈칸이 들어가게 된다.

예제 2) char 부분(기준 문자열)이 n(기준 길이) 보다 작을 경우

SELECT LPAD('oracleClub', 6, '#') result FROM DUAL UNION -- oracle
 
SELECT RPAD('oracleClub', 6, '#') result FROM DUAL UNION -- oracle

 

기준 문자열의 길이는 10인 반면에 기준 길이는 6으로 설정하게되면 기준 문자열보다 작게 설정된 것인데,

이럴 경우에는 LPAD 나 RPAD 상관없이 기준 문자열의 6자리 빼고 나머지 모자란 문자열이 잘려서 출력된다.

 

데이터 손실이 일어날 수 있으니 상황에 따라 잘 사용하도록 하자.

예제 3) char2 부분 (채워주는 문자열)에 많은 문자열을 지정한 경우

SELECT LPAD('oracleClub', 11, '#$%') result FROM DUAL UNION -- #oracleClub
 
SELECT RPAD('oracleClub', 15, '#$%') result FROM DUAL UNION -- oracleClub#$%#$

이는 그냥 단순하게 차례대로 빈공간에 넣어준다고 생각하면 된다. 

 

그래서 LPAD의 경우 1개만 들어갈 수 있기 때문에 #만 들어가고 끝난것이고

RPAD의 경우 5개만 들어갈 수 있기 때문에 순서대로 #$%#$ 에서 끝난것이다.

반응형


댓글

TOP