1. 程式人生 > >Oracle varchar2改成大欄位型別clob

Oracle varchar2改成大欄位型別clob

做專案中經常碰到資料庫改欄位問題,給自己做個記錄,下次直接可以拿來用了。Oracle 有些欄位直接修改會報錯ORA-22858: invalid alteration of datatype。不允許修改。不允許修改怎麼辦呢。。總不能把表幹掉重新建欄位吧。這在生產肯定行不通。可以先建個新欄位以clob型別,然後把要改欄位型別資料備份到新的欄位中,然後刪除掉舊的欄位,再把新的欄位列名改成舊的欄位就完成了更改。下面是程式碼:

--增加大欄位項
alter table t add a_copy CLOB;
--將需要改成大欄位的項內容copy到大欄位中
update t set a_copy= a;
--刪除原有欄位
alter table t DROP COLUMN a;
--將大欄位名改成原欄位名
alter table t RENAME COLUMN a_copy TO a;

大功告成。