Oracle修改Number类型精度报错:ORA-01440

修改Number类型的字段的精度SQL

ALTER TABLE XXXX MODIFY RATE NUMBER(30,6);

如果表已经存在数据,报错信息如下:

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

废话不多说,解决方案如下:

1、备份数据表

CREATE TABLE XXXX_NEW AS SELECT * FROM XXXX;

XXXX:数据表名,XXXX_NEW:新数据表名

2、添加临时字段

ALTER TABLE XXXX ADD RATE_TMP NUMBER(30,6);

临时字段精度确保为需要调整的进度

3、复制旧字段数据到临时字段

UPDATE XXXX SET RATE_TMP = RATE;

4、清除旧字段数据

UPDATE XXXX SET RATE = NULL;

5、修改旧字段精度

ALTER TABLE XXXX MODIFY RATE NUMBER(30,6);

6、将临时字段数据更新回旧字段

UPDATE XXXX SET RATE = RATE_TMP;

7、删除临时字段

ALTER TABLE XXXX DROP COLUMN RATE_TMP;

总结:此方案,借用过渡字段进行调整,别不是直接修改原有字段(前提需要确定数据字段精度是否兼容)。

相关推荐

  1. Oracle修改Number类型精度ORA-01440

    2024-03-23 17:04:03       16 阅读
  2. 笔记:oracleORA-55941

    2024-03-23 17:04:03       12 阅读
  3. Oracle 解决ORA-00257 Archiver error

    2024-03-23 17:04:03       38 阅读
  4. springboot连接oracleORA-12505解决方案

    2024-03-23 17:04:03       30 阅读
  5. Oracle普通用户启停JOBORA 27486权限不足

    2024-03-23 17:04:03       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 17:04:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 17:04:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 17:04:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 17:04:03       18 阅读

热门阅读

  1. 日本大带宽服务器优缺点分析

    2024-03-23 17:04:03       20 阅读
  2. mysql 锁的知识点简述

    2024-03-23 17:04:03       17 阅读
  3. 复试专业前沿问题问答合集14——自然语言处理

    2024-03-23 17:04:03       17 阅读
  4. 某笔试题记录

    2024-03-23 17:04:03       19 阅读