前端之家收集整理的这篇文章主要介绍了
如何在Oracle SQL中从BLOB获取文本内容,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从一个
sql控制台看到在Oracle BLOB里面是什么。
我知道它包含一个大的文本,我想只看到文本,但以下查询只表明在该字段中有一个BLOB:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
我得到的结果不是我的预期:
BLOB_FIELD
-----------------------
oracle.sql.BLOB@1c4ada9
那么,什么样的魔法咒语可以把BLOB变成它的文本表示?
PS:我只是想从sql控制台(Eclipse Data Tools)查看BLOB的内容,而不是在代码中使用它。
首先,您可能希望将文本存储在CLOB / NCLOB列中,而不是为二进制数据设计的BLOB(顺便说一下,您的
查询将使用CLOB)。
如果所有字符集都兼容(存储在BLOB中的文本的原始CS,用于VARCHAR2的数据库的CS),则以下查询将允许您查看blob中的最多32767个字符(最多)
select utl_raw.cast_to_varchar2(dbms_lob.substr(BLOB_FIELD)) from TABLE_WITH_BLOB where ID = '<row id>';