Целое число Oracle хранится с запятой - PullRequest
0 голосов
/ 15 октября 2018

Я смотрю на базу данных Oracle и есть столбец с именем score, который объявлен как INT(12,2).

Значения, которые там хранятся, выглядят так:
23487.31
0
322.3

Значит ли это, что это фактические значения с плавающей точкой?
Я действительно пролистал документацию по типу данных Oracle, но не смог найти никакой информации, касающейся обозначения INT (a, b).
(Источник: https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012)

Редактировать: SELECT * FROM v$version; дает мне:

Oracle Database 10g Release 10.2.0.5.0 - Production
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0      Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production

1 Ответ

0 голосов
/ 15 октября 2018

Значит ли это, что это фактические значения с плавающей точкой?

Нет.Это числа с заданной точностью в два десятичных знака.

Oracle поддерживает тип данных FLOAT, но он представлен внутри как NUMBER.Если вам нужны подлинные операции с плавающей точкой для более быстрой арифметики, у них есть BINARY_FLOAT и BINARY_DOUBLE.


почему я не могу найти что-либо о нотации INT(a,b)?

Потому что это недопустимая запись Oracle.INT допускается как синоним INTEGER, но не допускает масштабирования или точности параметров.Если вы попытаетесь включить их, Oracle бросает ORA-00907.(Точность в любом случае будет равна нулю, поскольку целое число может иметь точность, равную нулю.)

...