I Oracle är de samma:
SQL-satser som skapar tabeller och kluster kan också använda ANSI-datatyper och datatyper från IBM-produkterna SQL/DS och DB2. Oracle känner igen ANSI- eller IBM-datatypnamnet som skiljer sig från OracleDatabase-datatypnamnet. Den konverterar datatypen till motsvarande Oracle-datatyp, registrerar Oracle-datatypen som namnet på kolumndatatypen och lagrar kolumndata i Oracle-datatypen baserat på omvandlingarna som visas i tabellerna som följer.
Tabellen nedanför detta citat visar att DECIMAL(p,s)
behandlas internt som ett 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
Skalan är dock standard till 0 för DECIMAL
, vilket betyder att DECIMAL(*)
behandlas som NUMBER(*, 0)
, dvs. 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