加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

提高Oracle中数字列的精度或比例

发布时间:2020-12-12 16:25:32 所属栏目:百科 来源:网络整理
导读:我有一个名为AAA的表,其中包含一列: ED_RATE NOT NULL NUMBER(26,6) 我想使用这个语句来增加它的长度: ALTER TABLE ioa_invoice_line MODIFY FIXED_RATE NUMBER(26,15) 现在执行此操作时,我收到错误,请告知我如何克服这个问题 ORA-01440: column to be mod
我有一个名为AAA的表,其中包含一列:
ED_RATE NOT NULL NUMBER(26,6)

我想使用这个语句来增加它的长度:

ALTER TABLE ioa_invoice_line MODIFY FIXED_RATE NUMBER(26,15)

现在执行此操作时,我收到错误,请告知我如何克服这个问题

ORA-01440: column to be modified must be empty to decrease precision or scale

  1. 00000 – column to be modified must be empty to decrease precision or scale
您无法降低Oracle( Reference)中数字列的精度.你的问题有趣的是旧的精度是NUMBER(26,6),新的期望精度是NUMBER(26,15).这使得第一眼看上去两列的精度总数相同.我相信这可能是你困惑的根源.但是,第一种情况有6位小数的精度,而第二种情况有15位.将9位精度添加到列中可能会以小数点左侧的精度为代价.因此,这可能会导致您的某些数据被截断.

如果你想添加9位小数精度,我相信你还必须提高总精度.因此,以下应该有效:

ALTER TABLE ioa_invoice_line MODIFY FIXED_RATE NUMBER(35,15)
                                                      ^^ ^^ add 9 to both

请注意,精度限制为38,您的需求在此限制范围内.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读