泛微ecology E8升E9报错“java.sql.SQLException: ORA-01439:要更改数据类型,则要修改的列必须为空,alter table workflowtomodelog modify(billid varchar2(4000))”

[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!

这文章也是在草稿箱中找到,来自于遥远的2021年,不过现在依然有网友在使用泛微ecology8,虽然此刻也出来了泛微ecology10,有人依然会愿意升级泛微ecology9来玩耍,毕竟9此刻比10安稳!

泛微ecology E8升E9报错“java.sql.SQLException: ORA-01439:要更改数据类型,则要修改的列必须为空”

泛微ecology E8升E9完成后,在Oracle数据库中提示脚本内容“alter table workflowtomodelog modify(billid varchar2(4000))”错误,报错为“java.sql.SQLException: ORA-01439:要更改数据类型,则要修改的列必须为空”如下图所示,综合就是报ora-01439错误,字段内容不为空,不能修改字段类型;

通过创建临时字段,转移数据,清空原字段,修改字段类型,再回填数据,最后删除临时字段,成功实现了字段类型的变更。这个方法适用于字段非空且需要修改类型的情况。

解决思路:新建一个字段,复制到临时字段后再清空旧字段内容,再修改字段类型,再把值拷回来,再删除临时字段就能欧克!

检查字段类型
desc workflowtomodelog
检查
select BILLID from workflowtomodelog 
新建相同字段类型的临时字段
alter table workflowtomodelog add BILLIDbak int null
复制旧字段到新字段
update workflowtomodelog set BILLIDbak = BILLID 
检查
select BILLIDbak,BILLID from workflowtomodelog 
清空旧字段内容
update workflowtomodelog set BILLID = null 
检查
select BILLIDbak,BILLID from workflowtomodelog 
修改原字段类型
alter table workflowtomodelog modify(billid varchar2(4000))
检查
select BILLIDbak,BILLID from workflowtomodelog 
将临时字段值考回原字段
update workflowtomodelog set BILLID = BILLIDbak
检查
select BILLIDbak,BILLID from workflowtomodelog 
删除临时字段
alter table workflowtomodelog drop column BILLIDbak
检查
select BILLID from workflowtomodelog

以上都没啥问题后,点右边己修复或已更正即可完成!

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 泛微ecology E8升E9报错“java.sql.SQLException: ORA-01439:要更改数据类型,则要修改的列必须为空,alter table workflowtomodelog modify(billid varchar2(4000))”

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情