2017-02-10 3 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 оператора select и большинство операторов, имеющих столбцы типа данных данных, поэтому в этом состоянии мне трудно меняться во всех местах. –

+0

@ Николас Краснов Отлично, работает отлично. –

Смежные вопросы