項目の型をVARCHAR2からCLOBに変更する方法

単純に、


ALTER TABLE SAMPLE_TBL MODIFY column_name CLOB;

と実行すると、


ORA-22858: データ型の変更が無効です。

が発生。VARCHAR2からCLOBへの変更は素直にできないようですね。


なので、以下のPL/SQLを実行することで変更できました。
もっとシンプルに移行できるといいんですけれど…。

ALTER TABLE SAMPLE_TBL RENAME COLUMN column to column_old;
ALTER TABLE SAMPLE_TBL ADD column CLOB;

DECLARE
  CURSOR cu is SELECT * FROM SAMPLE_TBL;
BEGIN
  FOR cu_rec IN cu LOOP
    UPDATE SAMPLE_TBL SET column = cu_rec.column_old WHERE ID = cu_rec.ID;
  END LOOP;
END;
/

ALTER TABLE SAMPLE_TBL DROP (column_old);