본문 바로가기
Database/DB

oracle to_char 를 이용한 숫자 공백 채우기 99 --> 0099 , FM00000000 의미

by 댓츠굿 2014. 2. 5.

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

 


반응형