отображение НОМЕР (15) в спящем режиме - PullRequest
0 голосов
/ 29 марта 2019

Итак, мы имеем в нашем столбце схемы данных типа NUMBER(15). Как отобразить его в спящем режиме без изменения схемы? int тип данных слишком мал для этого, long тип данных слишком велик для этого (ORA-01438), даже при сохранении чисел без границ столбцов БД.

Предположим, что схема неизменна, и мы не хотим использовать BigInteger. Скажем, мы знаем, что это число не будет больше, чем 372036854775807, поэтому может вписываться как в long, так и в NUMBER (15).

БД Oracle.

1 Ответ

0 голосов
/ 29 марта 2019

так что на самом деле это была моя ошибка из-за неправильного прочтения документации оракула, касающейся числовой шкалы и точности.Я думал, что точность - это часть перед «.», А масштаб после нее, но нет, точность - это число всех цифр.Это вызвало мою проблему и в другом столбце.

Чтобы ответить на мой собственный вопрос: ORA-01438 не будет выброшено для чисел, которые соответствуют типу, используемому в слое БД.Поэтому, если я знаю, что тип данных, используемый на уровне приложения, не может быть больше, чем число (15), я могу смело использовать long в java и NUMBER (15) в БД.Пока это ограничение не нарушено, все в порядке.И соблюдение этого ограничения важно в первую очередь, и BigInteger не поможет без него, поскольку BigInteger может быть больше, чем NUMBER (37).

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