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