Ответ 1
В Oracle они одинаковы:
Операторы SQL, которые создают таблицы и кластеры, также могут использовать данные ANSI типы и типы данных из продуктов IBM SQL/DS и DB2. оракул распознает имя типа данных ANSI или IBM, которое отличается от Oracle Имя типа данных базы данных. Он преобразует тип данных в эквивалентный Тип данных Oracle, записывает тип данных Oracle как имя тип данных столбца и сохраняет данные столбца в типе данных Oracle на основе преобразований, показанных в следующих таблицах.
В приведенной ниже таблице показано, что DECIMAL(p,s)
обрабатывается внутри NUMBER(p,s)
:
SQL> create table t (a decimal(*,5), b number (*, 5));
Table created
SQL> desc t;
Name Type Nullable Default Comments
---- ----------- -------- ------- --------
A NUMBER(*,5) Y
B NUMBER(*,5) Y
Тем не менее, значение по умолчанию для 0 для DECIMAL
равно 0, что означает, что DECIMAL(*)
рассматривается как NUMBER(*, 0)
, т.е. INTEGER
:
SQL> create table t (a decimal, b number, c decimal (5), d decimal (5));
Table created
SQL> desc t;
Name Type Nullable Default Comments
---- --------- -------- ------- --------
A INTEGER Y
B NUMBER Y
C NUMBER(5) Y
D NUMBER(5) Y