2017-02-10 13 views
1

SqlDeveloper에서 스크립트를 실행하여 레코드를 스풀링하려고하는데 NUMBER (38,0) 데이터 형식 인 열 레코드를 인쇄하는 것 외에는 모두 정상적으로 작동합니다.올바른 형식으로 oracle에서 숫자를 스풀링하는 방법

모든 숫자 레코드 형식 아래에서 인쇄 :

1.5E+18

내가 설정하지만 아무것도 작동 사용하여 다양한 조합을 시도했다.

답변

1

to_char을 사용할 수 있습니다. 예 :

SQL> select to_char(n, '999999999999999999999') from numbers; 

TO_CHAR(N,'99999999999 
---------------------- 
    1500000000000000000 

이렇게하면 사용할 정확한 형식을 결정할 수 있습니다. 예를 들면 :

SQL> set numwidth 50 
SQL> select n from numbers; 

               N 
-------------------------------------------------- 
           1500000000000000000 
: 당신이 니콜라스 Krasnov에 의해 제안을 따를 수,

SQL> select to_char(n, 'FM999G999G999G999G999G999G999G999') from numbers; 

TO_CHAR(N,'FM999G999G999G999G999 
-------------------------------- 
1.500.000.000.000.000.000 

당신은 형식에 대한 전체 제어를 필요로하지 않는 경우, 및/또는 당신은 당신의 코드를 chenge 싶지 않아

+1

또는'set numwidth 50' (50은 최대 허용 값 임). 따라서 스크립트를 다시 작성할 필요가 없습니다. –

+0

사실 스크립트에는 164 개의 SELECT 문과 숫자 데이터 형식의 문을 포함하는 대부분의 문이 있으므로이 경우 모든 곳에서 변경하기가 어렵습니다. –

+0

@NicholasKrasnov 우수, 잘 작동합니다. –