DB 작업을 하다보면 가끔이지만 자릿수를 채워야 할 일이 생긴다.
예를 들자면 회원가입 시, 혹은 물품의 일련번호 기입시 순번이라거나 년도 + 시퀀스로 회원 번호를 만들거나 하는 경우인데
가끔 정말 무식한 방법으로 프로그램을 짠 곳을 보면 길이 체크를 해서 IF문으로 일일이 0, 00 등을 붙이는 곳이 있는데...
이건 정말 아니라고 본다.
하여튼 이럴 때는 오라클에서 제공하는 LPAD, RPAD 함수를 사용하면 되는데
이 함수들은 지정한 자릿수만큼 부족한 글자를 채워주는 기능을 한다.
사용법은 매우 간단하다.
LPAD('컬럼 또는 문자열', 길이, '문자')
RPAD('컬럼 또는 문자열', 길이, '문자')
SELECT LPAD('1', 5, '0'), LPAD('11', 5, '0') FROM DUAL; SELECT RPAD('1', 5, '0'), RPAD('11', 5, '0') FROM DUAL; --------------------------------------------------------- RESULT : 00001, 00011 RESULT : 10000, 11000
위의 결과에서 보이듯이 LPAD 는 자릿수가 부족한 만큼 왼쪽으로 글자를 채워주고
RPAD 는 자릿수가 부족한 만큼 오른쪽으로 글자를 채워준다.
뭔가 이대로 끝내기에는 엄청나게 허전하니까 위에 예시를 들었던대로 년도 + 시퀀스로 회원 번호를 만드는 방법도 알아보자.
DROP SEQUENCE SEQ_2018_04_14_LPAD_RPAD; CREATE SEQUENCE SEQ_2018_04_14_LPAD_RPAD START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 99999 NOCACHE ; SELECT TO_CHAR(SYSDATE, 'YY') || LPAD(SEQ_2018_04_14_LPAD_RPAD.NEXTVAL, 5, '0') FROM DUAL;
'개발 > 오라클' 카테고리의 다른 글
오라클 - CONNECT BY LEVEL (0) | 2018.04.14 |
---|---|
오라클 - 계층형 쿼리 START WITH... CONNECT BY PRIOR (0) | 2018.04.14 |
오라클 - 정규표현식 함수 REGEXP_REPLACE() (0) | 2018.04.01 |
오라클 - 정규표현식 함수 REGEXP_SUBSTR() (0) | 2018.04.01 |
댓글