Oracleでは、それらは同じです:
テーブルとクラスターを作成する SQL ステートメントでは、ANSI データ型と、IBM 製品の SQL/DS および DB2 のデータ型も使用できます。Oracle は、Oracle データベースのデータ型名とは異なる ANSI または IBM のデータ型名を認識します。データ型を同等の 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