【发布时间】:2018-07-15 17:21:57
【问题描述】:
我尝试在 extractValue() 中使用 BLOB 数据类型来获取指定 XPATH 中的文本,但它对于 BLOB 数据类型的抛出错误,而它对于 CLOB 数据类型工作正常。
所以我尝试使用以下逻辑将 BLOB 转换为 CLOB,如从 stackoverflow 获得的
create function clobfromblob(p_blob blob) return clob is
l_clob clob;
l_dest_offsset integer := 1;
l_src_offsset integer := 1;
l_lang_context integer := dbms_lob.default_lang_ctx;
l_warning integer;
begin
if p_blob is null then
return null;
end if;
dbms_lob.createTemporary(lob_loc => l_clob
,cache => false);
dbms_lob.converttoclob(dest_lob => l_clob
,src_blob => p_blob
,amount => dbms_lob.lobmaxsize
,dest_offset => l_dest_offsset
,src_offset => l_src_offsset
,blob_csid => dbms_lob.default_csid
,lang_context => l_lang_context
,warning => l_warning);
return l_clob;
end;
使用上述功能后,我得到的输出格式不可读。请帮助了解如何将 blob 转换为可读格式的 clob 或如何将 extractValue() 用于 BLOB 消息
【问题讨论】:
-
能否请您显示您的数据和函数调用。
extractValue用于XMLTYPE,既不是 CLOB 也不是 BLOB。 -
如何在 XML 文档中存储 BLOB 数据?
-
还有你得到什么错误?这对我们来说是一个很大的线索。
-
1.上面的代码正在从blob转换为clob并以这种格式显示数据-‹(不可读格式)它不允许我将完整的数据粘贴到她。
-
发现使用JAVA API xml被压缩(GZIPOutputStream)并通过java-new SqlLobValue(compStream, logMsg.length(), lobHandler)存入数据库。如何解压数据?
标签: sql oracle oracle11g plsqldeveloper