728x90
오라클에서 특정 문자로 채워야할때 LPAD,RPAD 함수를 사용합니다.
우선 문자 길이를 맞추고나서 부족하면
LPAD는 왼쪽에 RPAD는 오른쪽에 특정 문자를 넣어주는 함수입니다.
즉 문자길이를 우선적으로 맞추고 나서 조정에 들어갑니다.
사용법
둘다 같으며
LPAD( 값 , 문자길이 , 특정문자)
RPAD( 값 , 문자길이 , 특정문자)
만약 특정문자가 없을 경우 공백으로 대체됩니다.
특정문자가 들어가는 정도는 (문자길이 - 값의 문자 길이)의 만큼 들어갑니다.
예시 LPAD( 'dohi' , 7 , 'D')일경우에 D가 붙는 갯수는 3(=7-4)개로 왼쪽(L)에붙습니다
사용 예제
SELECT LPAD('dohi',6) -- dohi가 길이가 6이 되도록 왼쪽에 2개의 공백추가
, RPAD('dohi',6) -- dohi가 길이가 6이 되도록 오른쪽에 2개의 공백추가
, LPAD('dohi',5,' ') -- dohi가 길이가 5이 되도록 왼쪽에 1개의 공백추가
, RPAD('dohi',6,4) -- dohi가 길이가 6이 되도록 왼쪽에 2개의 4추가
, LPAD('dohi',6,'9') -- dohi가 길이가 6이 되도록 오른쪽에 2개의 9추가
, LPAD('dohi',2) -- dohi의 길이가 2까지 반환
, RPAD('dohi',2) -- dohi의 길이가 2까지 반환
FROM dual;
여기서 알수 있는 점은
1. 문자열의 길이를 맞추는 작업을 실행합니다.( LPAD('dohi',2), RPAD('dohi',2))의 경우 를 보면 do 반환
2. 그후 부족한 만큼 특정문자로 채웁니다.
이를 이용해서 다음과 같은 응용을 할 수 있습니다.
응용
다음처럼 응용이 가능하다.
SELECT RPAD(SUBSTR(NAME,1,3),LENGTH(NAME),'*') as NAME
, RPAD(SUBSTR(Ph_NB,1,3),7,'*')||SUBSTR(Ph_NB,-4) as PhoneNum
FROM (SELECT 'GodDohi' AS NAME
, '01012345678' AS Ph_NB -- 앞의 0이 유지되도록 문자열로 처리
FROM dual
)
;
추가 사용된 함수
SUBSTR (문자자르기), LENGTH(길이반환)
728x90
'2.2 DB > ORACLE' 카테고리의 다른 글
[Oracle] 글자의 바이트(byte)알려주는 함수 (VSIZE, LENGTHB) feat. 한글 바이트 확인 +두 함수 차이점 (0) | 2024.10.18 |
---|---|
[Oracle] 숫자,문자 자르기 함수 (SUBSTR) (0) | 2024.10.17 |
[Oracle] CLOB과 BLOB의 정의 (0) | 2024.10.11 |
[Oracle] 시간과 숫자를 원하는 단위까지 절사하는 함수 (TRUNC) (0) | 2024.10.07 |
[Oracle] OUTER JOIN (+) (0) | 2024.10.04 |
댓글