1. 程式人生 > >Oracle壓縮表修改欄位的處理方法

Oracle壓縮表修改欄位的處理方法

今天在修改表,往表裡面添加了幾個欄位,一時疏忽將欄位型別搞錯了。

於是,試了以下幾種方法

1、嘗試用最傳統的sql修改欄位型別:

alter table table_name modify column_name column_type;

由於資料倉庫中該表的資料特別大(一年的資料,每天有上千萬條記錄),sql語句執行了好幾分鐘,都沒有出結果。網上搜索了一下modify column大資料會記錄redo和undo。為了不對資料倉庫造成影響,所以只好停掉該sql。

2、嘗試刪除欄位,再重建,結果出現ORA-39726錯誤

最後網上找了一下,使用

ALTER TABLE test SET UNUSED COLUMN ROUTERADDR;

語句將欄位設定成unused,最後再重新建立需要修改的表字段。

由於該方法只是將欄位設定成unused,看不到欄位,但是在資料字典中,該欄位還是存在的。沒有深入研究怎麼刪除oracle資料字典,如有朋友對這方面有研究,請指教。