我試圖在保留現有數據的同時修改數據類型。這是當前設置:修改列數據類型時保留數據
create or replace type xyz.Varray2 is varray(50) of varchar2(20);
CREATE TABLE xyz.owner (
MODIFIED DATE,
ID Varchar(18),
STATE Varchar(2),
CONTRIBUTOR_IDS xyz.Varray2
)
的示例記錄是這樣的:
10-MAR-13 408923100000000002 CA VARRAY2('Bob', 'Tom', 'Mary', 'Henry', 'Bart')
我需要修改Varray2
數據類型是一個varray(150)
。我寧願保留Varray2
類型,但如果需要,可以創建新的Varray3
類型以供使用。
此表包含數百萬條需要保留的記錄。爲了修改現有的Varray2
類型,我必須刪除表格,這是我的第一個問題。我試圖導出表格,然後在將Varray2
更改爲150後將其導入,但它給出了類型不同的錯誤。我試圖用新的數據類型創建一個備份表,但是在嘗試保存數據時又出錯(不兼容的類型)。它不會讓我動態修改列數據類型,(ORA-22859
)。
我正在編寫一個遊標甚至是一個bash腳本來分析假脫機輸出以生成INSERT
命令來插入到新表中,但這似乎過分了。我希望這裏有人能夠想出一個更簡單的解決方案。
alter命令完美運行。謝謝! – japkin