이미지09
Coding Story/DATABASE

[ Oracle ] 오라클 LPAD 와 RPAD

반응형

 

 

개발을 하다 보면 문자열을 지정된 크기에 맞게 채워야 할 때가 있다.

전화번호를 11자리로 하는데 11자리 미만일경우 0으로 채워라는 경우처럼 말이다.

특정문자열을 지정한 자릿수만큼 내가 지정한 문자로 채우고자 할 때 쓰는 함수가 바로 LPADRPAD 함수이다.

PAD의 영어사전적 의미로는 '덧대다'의 뜻인데 개발에서는 이를 '덧붙이다'나 '채우다'라는 의미로 사용되고 있다.

즉, LEFT PAD ( LPAD ) 왼쪽으로부터 채우기, RIGHT PAD ( RPAD ) 오른쪽으로부터 채우기인 셈이다.

 

먼저 문법을 살펴보자.

LPAD ( x, n, y )

RPAD ( x, n, y )

 

여기서 xLPAD 나 RPAD 를 적용시키고자 하는 문자열이 들어간다.

n자릿 수를 뜻 하고, yx 가 n 자릿 수를 다 채우지 못했을 경우 채우게될 문자나 문자열을 뜻한다.

이 때, y 를 지정하지 않았을 경우 공백으로 빈 자리를 채우게 된다.

 

예제를 살펴보자.

 

 

y 를 지정하지 않았을 경우

SELECT LPAD ( 'ABCD', 10 ), RPAD ( 'ABCD', 10 ) FROM DUAL ;

 

결과

포스팅 이미지 01

 

결과를 보면 알 수 있듯이 y 를 넣지 않으면 빈 자리를 공백으로 메꾸게 된다.

 

 

 

y 를 지정했을 경우

SELECT LPAD ( 'ABCD', 10, '@' ), RPAD ( 'ABCD', 10, '@' ) FROM DUAL ;

 

결과

포스팅 이미지 02

 

결과를 보면 알 수 있듯이 빈 자리에 y 문자들로 채워지게 된다.

 

 

 

n 이 x 의 자릿 수보다 작을 경우

SELECT LPAD ( 'ABCD', 2, '@' ), RPAD ( 'ABCD', 2, '@' ) FROM DUAL ;

 

결과

포스팅 이미지 03

 

결과를 보면 알 수 있듯이 x 의 자릿 수보다 적은 자릿 수 n 을 선언하면 데이터의 손실이 일어나게 된다.

 

 

 

y 를 두 개 이상의 문자를 지정할 경우

SELECT LPAD ( 'ABCD', 10, '@#$%' ), RPAD ( 'ABCD', 10, '@#$%' ) FROM DUAL ;

 

결과

포스팅 이미지 04

 

위의 경우 빈자리는 6자리이나 지정된 문자 y 는 4개이다.

이 문자들을 빈자리에 순서대로 하나씩 채워나감을 반복하게 된다.

 

 

 

 

 

반응형