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
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
2条答案
按热度按时间dnph8jn41#
在Oracle中,它们是相同的:
创建表和簇的SQL语句还可以使用ANSI数据类型以及IBM产品SQL/DS和DB2中的数据类型。Oracle识别与Oracle数据库数据类型名称不同的ANSI或IBM数据类型名称。它将数据类型转换为等效的Oracle数据类型,将Oracle数据类型记录为列数据类型的名称,并根据下表中显示的转换将列数据存储为Oracle数据类型。
下面的表格显示
DECIMAL(p,s)
在内部被视为NUMBER(p,s)
:但是,
DECIMAL
的比例默认为0,这意味着DECIMAL(*)
被视为NUMBER(*, 0)
,即INTEGER
:mrzz3bfm2#
实际上,小数和数字是有区别的,小数会截断超出小数位的数值,数字会四舍五入。