Как создать номер Oracle не менее чем из 11 цифр? - PullRequest
2 голосов
/ 09 марта 2011

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

В TCPE тип данных называется NUM (m [, n]).M означает числовое значение без знака с как минимум m цифрами, из которых n цифр расположены справа после десятичной точки.

Итак, NUM (11), как мне создать тип данных для этого в Oracle?*

Я думал о NUMBER (11,0), но, похоже, это максимальное количество битов.Может быть, с плавающей точкой может решить эту проблему?

Или я должен использовать проверочное ограничение?Но использование проверочного ограничения показалось мне немного странным, так как я думал, что это будет изначально поддерживаться.

1 Ответ

4 голосов
/ 09 марта 2011

Невозможно объявить числовой тип, который содержит «не менее x цифр и может хранить также более x цифр».

Все, что вы можете сделать, это просто объявить его как NUMBER(38,0) (максимально возможное целое число) и создать ограничение, чтобы проверить, меньше ли число, чем длина цифр X.

UPD

Также, как вы упомянули, NUMBER(*, 0) также является допустимым способом сделать ту же работу.

...