oracle 设置默认精度,oracle数据值型数据改精度测试

今天,同事问我一个问题,一个字段定义原先是NUMBER(15,2),并且里面的数据都是整数,现在想改成NUMBER

做了一个测试:

SQL> desc b

Name Type Nullable Default Comments

---- ------------ -------- ------- --------

COL1 NUMBER(15,2) Y

SQL> select * from b;

[@more@]

COL1

-----------------

SQL> insert into b values(12);

1 row inserted

SQL> insert into b values(11.11);

1 row inserted

SQL> commit;

Commit complete

SQL> select * from b

2 ;

COL1

-----------------

12.00

11.11

SQL> alter table B modify COL1 NUMBER;

Table altered

SQL> select * from b;

COL1

----------

12

11.11

SQL>

可以看出,精度从小往大改是可以改的,以前是整数的改过来去掉小数位,以前是小数的,改过来之后还是小数

SQL> desc b

Name Type Nullable Default Comments

---- ------ -------- ------- --------

COL1 NUMBER Y

SQL> alter table B modify COL1 NUMBER(15,2);

alter table B modify COL1 NUMBER(15,2)

ORA-01440: 要减小精度或标度, 则要修改的列必须为空

SQL>

可以看出要使精度从大往小改ORACLE是不允许的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值