泛微ecology E8升E9報(bào)錯(cuò)“java.sql.SQLException: ORA-01439:要更改數(shù)據(jù)類(lèi)型,則要修改的列必須為空,alter table workflowtomodelog modify(billid varchar2(4000))”
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
這文章也是在草稿箱中找到,來(lái)自于遙遠(yuǎn)的2021年,不過(guò)現(xiàn)在依然有網(wǎng)友在使用泛微ecology8,雖然此刻也出來(lái)了泛微ecology10,有人依然會(huì)愿意升級(jí)泛微ecology9來(lái)玩耍,畢竟9此刻比10安穩(wěn)!
泛微ecology E8升E9報(bào)錯(cuò)“java.sql.SQLException: ORA-01439:要更改數(shù)據(jù)類(lèi)型,則要修改的列必須為空”
泛微ecology E8升E9完成后,在Oracle數(shù)據(jù)庫(kù)中提示腳本內(nèi)容“alter table workflowtomodelog modify(billid varchar2(4000))”錯(cuò)誤,報(bào)錯(cuò)為“java.sql.SQLException: ORA-01439:要更改數(shù)據(jù)類(lèi)型,則要修改的列必須為空”如下圖所示,綜合就是報(bào)ora-01439錯(cuò)誤,字段內(nèi)容不為空,不能修改字段類(lèi)型;
通過(guò)創(chuàng)建臨時(shí)字段,轉(zhuǎn)移數(shù)據(jù),清空原字段,修改字段類(lèi)型,再回填數(shù)據(jù),最后刪除臨時(shí)字段,成功實(shí)現(xiàn)了字段類(lèi)型的變更。這個(gè)方法適用于字段非空且需要修改類(lèi)型的情況。
解決思路:新建一個(gè)字段,復(fù)制到臨時(shí)字段后再清空舊字段內(nèi)容,再修改字段類(lèi)型,再把值拷回來(lái),再刪除臨時(shí)字段就能歐克!
檢查字段類(lèi)型 desc workflowtomodelog 檢查 select BILLID from workflowtomodelog 新建相同字段類(lèi)型的臨時(shí)字段 alter table workflowtomodelog add BILLIDbak int null 復(fù)制舊字段到新字段 update workflowtomodelog set BILLIDbak = BILLID 檢查 select BILLIDbak,BILLID from workflowtomodelog 清空舊字段內(nèi)容 update workflowtomodelog set BILLID = null 檢查 select BILLIDbak,BILLID from workflowtomodelog 修改原字段類(lèi)型 alter table workflowtomodelog modify(billid varchar2(4000)) 檢查 select BILLIDbak,BILLID from workflowtomodelog 將臨時(shí)字段值考回原字段 update workflowtomodelog set BILLID = BILLIDbak 檢查 select BILLIDbak,BILLID from workflowtomodelog 刪除臨時(shí)字段 alter table workflowtomodelog drop column BILLIDbak 檢查 select BILLID from workflowtomodelog
以上都沒(méi)啥問(wèn)題后,點(diǎn)右邊己修復(fù)或已更正即可完成!
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!