日期:2014-05-16 浏览次数:20573 次
今天同事过来找我,她在创建?一个表的时候不小心把字段建成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)... |