Ищите актуальную документацию по Oracle SQL Number DATA для ответа на вопрос масштаба - PullRequest
1 голос
/ 11 июня 2019

На основании старых сообщений, найденных здесь и в других местах, я предполагал, что тип данных NUMBER без масштаба не имеет значения по умолчанию, равного нулю. Однако, когда я смотрю на наши данные на нашем сервере, я вижу рациональные числа (читай не целые числа) даже без указания масштаба. Это ожидаемое поведение?

Чтобы дать некоторый контекст, я технический писатель, и я документирую различные вещи, связанные с данными, которые мы храним. Я предполагал, что все ЧИСЛА без указания масштаба были целыми числами. Если это неправильно, мне нужно обновить мою документацию.

Я в основном использовал следующую ссылку в качестве цитаты для своих рассуждений о масштабе, но теперь я считаю, что она устарела. Link

Я также прочитал документацию оракула здесь и здесь . В последней ссылке также указывается, что если масштаб не указан, то по умолчанию устанавливается ноль.

1 Ответ

2 голосов
/ 11 июня 2019

Я думаю, что документация Oracle вводит в заблуждение. Если нет точности и , масштаб не указан, тогда число сохраняется как есть; масштаб по умолчанию 0 применяется только при наличии указанной точности.

Итак, следующий код хранит первые несколько цифр числа Пи:

create table t (n number);

insert into t(n) values (3.14159265358979);

Но это не так:

create table t2 (n number(5));

insert into t2(n) values (3.14159265358979);

Здесь - это скрипта db <>, иллюстрирующая это.

Это довольно неизгладимо отмечено в моей памяти, от забавного времени портирования базы данных Oracle на BigQuery (который даже не имел числовых значений в то время). Тип данных Oracle number был одной из самых сложных частей перехода. В конце концов, нам нужно было перенести это в строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...