今天同事过来找我,她在创建 一个表的时候不小心把字段建成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
本文详细介绍了在数据库中将CLOB类型字段转换为VARCHAR2类型的过程,并提供了SQL语句及注意事项。包括如何通过建立临时字段、截取CLOB内容、删除原始CLOB字段以及重命名临时字段来实现转换。此外,还列出了不支持LOB类型的SQL语句及使用场景,以帮助开发者避免常见错误。
2780

被折叠的 条评论
为什么被折叠?



