oracle中如何用sql将CLOB,BLOB类型转换成字符串

oracle中如何用sql将CLOB,BLOB类型转换成字符串??
表中有一个字段类型是CLOB,想把它转成字符串,dbms_lob.substr( ) 可以用,但是字段超过一定长度就报错,请问用sql还有其他方式实现吗?

直接用to_lob可以


SELECT TO_LOB(clob_column) AS clob_string, TO_LOB(blob_column) AS blob_string
FROM table;

还有种匿名块的方法,不过我相信你不会喜欢的

  • 这篇博客: Oracle Clob类型和Blob类型之间的转换中的 一、背景 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 最近在迁移数据时,遇到了将Clob类型转换成Blob的问题,历史数据中文件内容是使用Clob类型存储,而新表使用的Blob类型,这样就导致在迁移文件时需要将类型转换。

我问的是 CLOB转换成 字符串,不是 转化成CLOB

没用过这个数据类型,
你看看这个方法可以不
update hadoop.测试表 set 客户名称=to_clob(客户名称)
update hadoop.测试表 set 客户名称=to_char(客户名称)

用CAST函数强制类型转换。代码如下:

create table t2(a clob);

insert into t2 values('aaaaaaaaa');

select * from t2;

create table t3 as select cast(a as varchar2(30000)) str from t2;

select * from user_tab_cols where table_name in ('T2','T3');

img

使用CONVERT函数:CONVERT函数可以将字符集不同的大对象类型(如CLOB或BLOB)转换为指定字符集的字符串。


```sql
SELECT CONVERT(clob_column, 'AL32UTF8') AS clob_string
FROM your_table;


```