主要是因為oracle不允某些類型的欄位修改。就是不可以將欄位類型修改為:object、REF、nested table、VARRAY、 CLOB、BLOB。
解決方式如下:[1]
1、將欄位a改名為a_copy
2、新建一個欄位a,用正確的類型
3、將_a欄位中的數據經一定轉換(一般要做轉換的,因為類型變了)后插入了a欄位中
4、刪除_a欄位
如果無需保留數據只要1、2、3步就可以了。
如果表中或該欄位中還沒有數據,那就更簡單了,把那個欄位刪除再以正確的數據類型新建一個即可。
或者
1.[2]
alter table table_name add column_new number;
update table_name set column_new=column_old;
alter table table_name drop column column_old;
alter table table_name rename column column_new to column_old;
資料來源:
[1] http://www.010cnc.net/subject/about/ORA-22858%E6%9C%89%E9%97%9C%E5%95%8F%E9%A1%8C%E8%A9%B3%E8%A7%A3.html
[2] http://hi.baidu.com/honeysnail/item/76e6725dcd39fd3094eb0579