На Oracle можно создать числовые типы данных, которые «более точны», чем то, что передает количество цифр. Таким образом, в случае number(2, 4)
можно сохранить 0,0023. Невозможно заполнить первые две десятичные цифры как 0,12 или даже 0,001. Это приведет к ошибке ORA-01438: value larger than specified precision allowed for this column
Сервер SQL не поддерживает тип данных numeric(2, 4)
. Ошибка: The scale (4) for column 'a' must be within the range 0 to 2.
Очевидно, я мог бы создать таблицу с numeric(4, 4)
.
Наиболее точным числовым типом данных для Oracle будет number(38, 127)
. Десятичные цифры от 1 до 89 не могут быть заполнены, а от 90 до 127. Что бы вы сделали, если бы решали такое требование на сервере SQL?