Database/DB
oracle to_char 를 이용한 숫자 공백 채우기 99 --> 0099 , FM00000000 의미
댓츠굿
2014. 2. 5. 12:36
oracle의 to_char 함수를 이용해서 2자리 숫자를 8자리(혹은 그 이상)으로 만드는 방법
1. 문제 :회사원의 사번과 오늘 날짜와 시퀀스값(여기선 강제로 11로 함)을 조합하여 총 length가 20인 고유번호를 만들기로 했다.
- 쿼리를 아래와 같이 만들었다.
select 'EMP001'||'-'||TO_CHAR(SYSDATE,'YYMMDD')||TO_CHAR('11','00000000') as t from dual
- 실행을 해보니 결과값이 아래와 같았다.
EMP001-121109 00000011
- 121109 이후에 공백이 생겼다... 왜 그럴까?
2.해결법
- to_char의 속성상 공백부분은 + 또는 -의 부호값이 들어가는 부분이란다. 그때는 FM을 써서 포매팅 해주면 된다.
- (실 값이 시퀀스값이기 때문에 음수는 나올수 없으므로 8자리의 숫자형으로 답이 나온다.)
- select 'EMP001'||'-'||TO_CHAR(SYSDATE,'YYMMDD')||TO_CHAR('11','FM00000000') as t from dual
출처: http://blog.naver.com/ambion?Redirect=Log&logNo=50154343338
반응형