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

2024-04-15 20:56:01 浏览数 (2)

在执行SQL审计任务时提示ORA-01440,根据提示可能SQL存在降低长度或者精度的问题。最后定位到的SQL如下:

代码语言:javascript复制
  select count(*) into v_cnt from user_tab_columns a where a.table_name=upper('a_bill_mallsettle_fanli') and a.column_name=upper('fanli_grade');
  if v_cnt=1 then
    execute immediate 'alter table a_bill_mallsettle_fanli modify fanli_grade number(4,0)';
  end if;

原字段长度是10,0现在是4,0,对于MYSQL可以正常操作,但是ORACLE中是不可以的。

解决方案是将旧字段修改名称,创建1个新字段代替它,然后UPDATE修改SQL数据、最后再删除旧字段。

0 人点赞