일련번호 Number로되어있을경우 0 4 660

by 동글222 [2017.01.19 09:21:58]


000001 이런식으로 저장하면 무조건 1로되는건가요?

 000001 이렇게 저장하는 방법은 char형으로 바꾸는방법밖에없는지요..

by jkson [2017.01.19 09:31:08]

인출할 때 lpad(컬럼,6,'0') 이렇게 쓰시면 해당형식으로 바꿀 수 있긴하지만

저장될 땐 number 형태로만 저장됩니다.


by 미스틱매니아 [2017.01.20 10:29:45]

number type은 내부적으로 char와는 다른 구조로 저장되게 되고, 조회시 " 사용자가 지정한 포맷"에 맞게 표현하는 구조입니다. 

이건 대부분의 DBMS에서 숫자형 저장시 해당되는 내용입니다.

0000001은 결국 숫자로 보면 1일 뿐이니 1로 저장되는게 당연하지만, 이걸 어떻게 뽑느냐는 다른 문제란 거죠

 

SQL> col tnum format 000000
SQL> select 1 as tnum from dual;

   TNUM
-------
 000001

1 row selected.

SQL> select 1 as onum from dual;

      ONUM
----------
         1

1 row selected.


by jkson [2017.01.20 11:25:30]

우앗~! 이런 방법도 있군요. 좋은 것 배웠습니다. 감사합니다. 세션 레벨에서 지정했다 풀었다 할 수 있을 것 같은데.. sqlplus 이외에서 활용할 수 있는 방법도 있을까요? 굳이 함수 사용안해도 되니 괜찮은 방법일 것 같은데..


by 긍률 [2017.01.20 10:58:13]

숫자형식으로 저장하시고 출력시 00000을 붙여서 right해서 출력하면 될거같습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입