前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ORA-01440: 要减小精度或标度, 则要修改的列必须为空的解决办法

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

原创
作者头像
高久峰
发布2024-04-15 20:56:01
1950
发布2024-04-15 20:56:01
举报

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档