在Oracle文档中提到
NUMBER(精度,小数位数) 如果未指定精度,则该列将存储给定的值。如果未指定比例,则比例为零。
NUMBER(精度,小数位数)
如果未指定精度,则该列将存储给定的值。如果未指定比例,则比例为零。
但是NUMBER(没有精度和小数位数)也接受浮点数(34.30),但是根据文档,如果未指定小数位数,则默认情况下应为零小数位数,因此应仅允许整数,对吗?
NUMBER
在另一个问题中,提到
默认精度为38,默认比例为零
因此NUMBER,NUMBER(*,0)应该相等,但不相等。
NUMBER(*,0)
我哪里错了?
小数位数的默认值不为零,其中没有任何值。因此,它可以接受之间的任何值-84 to 127。如果将其限制为零,则即使该值包含小数位值,它也不会接受任何精度
-84 to 127
create table aaaaa ( sno number(*,0), sno1 number );
该user_tab_columns给你的你的精度和标度值
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>
请找到以下工作方式
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>