В Oracle те са едни и същи:
SQL изразите, които създават таблици и клъстери, могат също да използват ANSI типове данни и типове данни от продуктите на IBM SQL/DS и DB2. Oracle разпознава името на типа данни ANSI или IBM, което се различава от името на типа данни на OracleDatabase. Той преобразува типа данни в еквивалентния тип данни на 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
, което означава, че 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