今天同事过来找我,她在创建 一个表的时候不小心把字段建成CLOB类型了,Order的时候不支持了,所以想转回来,还要保存里面的数据。给她提供了一个步骤:
1.建立一个临时varchar2字段用来保存数据
2.将clob的内容截取后更新到varchar2字段中
update table_wonder set tempcolumn = dbms_lob.substr(clobcolumn,4000);
3.drop掉clob字段
4.将临时varchar2字段改名
alter table table_wonder rename column tempcolumn to column;
另外rename语句在9.2以上版本支持,在pl/sql developer 7.0版本的command window中不支持,需要使用sqlplus。
列出lob类型不支持的sql语句
不支持的语句 | 不支持的用法例子 |
---|---|
SELECT DISTINCT | SELECT DISTINCT clobCol from... |
SELECT clause ORDER BY | SELECT... ORDER BY clobCol |
SELECT clause GROUP BY | SELECT avg(num) FROM... GROUP BY clobCol |
UNION, INTERSECT, MINUS (Note that UNION ALL works for LOBs.) | SELECT clobCol1 from tab1 UNION SELECT clobCol2 from tab2; |
Join queries | SELECT... FROM... WHERE tab1.clobCol = tab2.clobCol |
Index columns | CREATE INDEX clobIndx ON tab(clobCol)... |
http://blog.youkuaiyun.com/wonder4/article/details/1465895