Raj*_*eev 4 sql oracle types oracle11g sqldatatypes
在Oracle 文档中提到了这一点
NUMBER(精度,比例)
如果未指定精度,则列将值存储为给定值.如果未指定比例,则比例为零.
但是NUMBER(没有精度和比例)也接受浮点数(34.30)但是根据文档,如果没有指定scale,它默认应该是零刻度,所以它应该只允许整数,我错了吗?
在另一个问题中提到了这一点
默认精度为38,默认比例为零
所以NUMBER,NUMBER(*,0)应该是平等的,但事实并非如此.
我哪里错了?
scale的默认值不为零,它没有值.因此它可以接受它们之间的任何值-84 to 127.如果将其限制为零,则即使该值包含比例值,也不会接受任何预设
create table aaaaa
(
sno number(*,0),
sno1 number
);
Run Code Online (Sandbox Code Playgroud)
这user_tab_columns将为您提供精度和规模的价值
SQL> select column_name,data_precision,data_scale from user_tab_columns where ta
ble_name = 'AAAAA';
COLUMN_NAME DATA_PRECISION DATA_SCALE
------------------------------ -------------- ----------
SNO 0
SNO1
SQL>
Run Code Online (Sandbox Code Playgroud)
请找到以下工作方式
SQL> select * from aaaaa;
no rows selected
SQL> insert into aaaaa values (123.123123,123123.21344);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from aaaaa;
SNO SNO1
---------- ----------
123 123123.213
SQL>
Run Code Online (Sandbox Code Playgroud)