2016-04-13 6 views
0

Числовой тип данных имеет точность по умолчанию 39 или 40, а значение по умолчанию - ноль.Тип данных Oracle

declare 
i number; -- default will be i:= number(40,0) 

Однако я могу сохранить это значение в этом.

i := 120.45; 

То же самое с точностью, по умолчанию было 40. но я также могу хранить значение 10^60?

declare 
i number; 
begin 
i := power(10,60); 
dbms_output.put_line(i); 
end; 
/

Означает ли это автоматическое изменение точности оракула и значение шкалы соответственно?

ответ

1

Oracle NUMBER тип данных делает не имеют масштаб по умолчанию равен нулю, когда точность не определена. Шкала по умолчанию равна нулю, только если задана .

Максимальная точность, которая может быть указана для типа данных NUMBER, составляет 38 десятичных цифр.

Вопрос: Означает ли это автоматическое изменение точности оракула и значение шкалы соответственно?

A:

Если точность и масштаб не указаны, то десятичная точка не является фиксированной и разрешено «плавать». Тип данных NUMBER может хранить максимальный диапазон значений, POWER (10, -130) < = n < POWER (10,126).

Если точность указана без шкалы, например. NUMBER (38), то масштаб по умолчанию равен нулю. Так что это эквивалентно заданию NUMBER (38,0).

+0

Спенсер. – Wolfgang

1

Сохраните значение, которое вы ему даете, и оно находится в пределах максимального и минимального диапазона для типа данных NUMBER.

Oracle Документация:

column_name НОМЕР

Если точность не указана, то значения столбцов хранятся как данные. Если масштаб не указан, масштаб равен нулю

http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832

1

The NUMBER type in Oracle is a portable, variable length (1 to 22 bytes), base 10 floating point data type with 38 decimal digits of precision. IMO - одна из лучших функций Oracle, поскольку она эффективно устраняет необходимость того, чтобы разработчики знали или заботились о ограничениях, определяемых реализацией, как хранить числовые значения. Для переменных или столбцов типа NUMBER нет масштаба по умолчанию; однако, если NUMBER объявлен как, например, NUMBER(7), тогда вы правы, что по умолчанию значение по умолчанию равно нулю. По моему опыту чрезвычайно необычно объявлять любую переменную или столбец NUMBER с масштабом или точностью, я предпочитаю, чтобы фишки падали, как они могут, численно говоря, а затем округлять или обрезать по мере необходимости.

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