在执行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数据、最后再删除旧字段。