泛微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))”