2017-02-10 10 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> select to_char(n, 'FM999G999G999G999G999G999G999G999') from numbers; 

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

あなたは形式上の完全な制御を必要としない、および/またはあなたのコードをchengeしたくない場合は、ニコラス・クラスノフによって提案に従うことができます:

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

               N 
-------------------------------------------------- 
           1500000000000000000 
+1

または 'set numwidth 50'(50は最大許容値)です。したがって、スクリプトを書き直す必要はありません。 –

+0

実際に私のスクリプトでは、164個の選択ステートメントと数字のデータ型の列を持つステートメントのほとんどがあります。この状態では、すべての場所で変更することは難しいです。 –

+0

@NicholasKrasnov優秀、その正常に動作します。 –

関連する問題