If the VARCHAR2(4000) column is empty, then you can modify the column to LONG first and then to CLOB.
Code:SQL> desc test_clob Name Null? Type ------------------------------------ -------- ----------------- A1 NUMBER A2 VARCHAR2(4000) SQL> alter table test_clob modify a2 long; Table altered. SQL> alter table test_clob modify a2 clob; Table altered. SQL> desc test_clob Name Null? Type ------------------------------------ -------- ----------------- A1 NUMBER A2 CLOB
If there is data in the column, you can do the following:
Code:SQL> create table test_clob (a1 number, a2 varchar2(4000)); Table created. SQL> insert into test_clob values (1, rpad('*',4000,'*')); 1 row created. SQL> alter table test_clob add (a2_clob clob); Table altered. SQL> update test_clob set a2_clob = a2; 1 row updated. SQL> alter table test_clob drop (a2); Table altered. SQL> alter table test_clob add (a2 clob); Table altered. SQL> update test_clob set a2 = a2_clob; 1 row updated. SQL> alter table test_clob drop (a2_clob); Table altered. SQL> desc test_clob Name Null? Type ------------------------------------ -------- -------------- A1 NUMBER A2 CLOB




Reply With Quote