In Oracle sind sie gleich:
SQL-Anweisungen, die Tabellen und Cluster erstellen, können auch ANSI-Datentypen und Datentypen aus den IBM-Produkten SQL/DS und DB2 verwenden. Oracle erkennt den ANSI- oder IBM-Datentypnamen, der sich vom OracleDatabase-Datentypnamen unterscheidet. Es konvertiert den Datentyp in den entsprechenden Oracle-Datentyp, zeichnet den Oracle-Datentyp als Namen des Spaltendatentyps auf und speichert die Spaltendaten im Oracle-Datentyp basierend auf den in den folgenden Tabellen gezeigten Konvertierungen.
Die Tabelle unter diesem Zitat zeigt, dass DECIMAL(p,s) wird intern als NUMBER(p,s) behandelt :
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
Die Skalierung ist jedoch standardmäßig 0 für DECIMAL , was bedeutet, dass DECIMAL(*) wird als NUMBER(*, 0) behandelt , also 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