In Oracle zijn ze hetzelfde:
SQL-instructies die tabellen en clusters maken, kunnen ook gebruikmaken van ANSI-gegevenstypen en gegevenstypen van de IBM-producten SQL/DS en DB2. Oracle herkent de ANSI- of IBM-gegevenstypenaam die verschilt van de OracleDatabase-gegevenstypenaam. Het converteert het gegevenstype naar het equivalente Oracle-gegevenstype, registreert het Oracle-gegevenstype als de naam van het kolomgegevenstype en slaat de kolomgegevens op in het Oracle-gegevenstype op basis van de conversies die in de volgende tabellen worden getoond.
De tabel onder dit citaat laat zien dat DECIMAL(p,s)
wordt intern behandeld als een 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
De schaal staat echter standaard op 0 voor DECIMAL
, wat betekent dat DECIMAL(*)
wordt behandeld als NUMBER(*, 0)
, d.w.z. 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