Какой лучший эквивалент для числа (2, 4) из Oracle на сервере MS SQL? - PullRequest
1 голос
/ 07 августа 2020

На 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?

1 Ответ

2 голосов
/ 07 августа 2020

Не могли бы вы использовать ограничение CHECK? Пример:

ALTER TABLE tbl ADD col DECIMAL(4,4) CHECK (ABS(col) < 0.01);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...