【发布时间】:2014-10-18 07:17:26
【问题描述】:
我确实有 CR_ELEMENT 过程,它使我可以添加一个节点。 我现在必须创建一个 blob 节点,我想知道如何使用像 CR_BLOB_ELEMENT 这样的过程来完成它。
有人可以给我一个提示吗?
问候,
皮埃尔
PS:我使用的是 Oracle Database 11g 版本 11.2.0.4.0
CR_BLOB_ELEMENT(l_domdoc in out dbms_xmldom.DOMDocument,
ref_node in dbms_xmldom.DOMNode,
nomel in varchar2,
blobtobeadded in blob)
procedure CR_ELEMENT(l_domdoc in out dbms_xmldom.DOMDocument,
ref_node in dbms_xmldom.DOMNode,
nomel in varchar2,
vnomel in varchar2) as
element dbms_xmldom.DOMElement;
node dbms_xmldom.DOMNode;
text dbms_xmldom.DOMText;
textnode dbms_xmldom.DOMNode;
begin
element := dbms_xmldom.createElement(l_domdoc, nomel);
node := dbms_xmldom.appendChild(ref_node,
dbms_xmldom.makeNode(element));
text := dbms_xmldom.createTextNode(l_domdoc, vnomel);
textnode := dbms_xmldom.appendChild(node, dbms_xmldom.makeNode(text));
end;
【问题讨论】:
-
那么您需要将二进制数据转换为 XML 文档吗?如果是这样,那么一种选择是将二进制数据编码为 Base64 格式。
-
Tks Jokke。我确实有base64编码的blob到数据库中,但是在将它写入xml时我被卡住了。由于 varchar2 的限制,恐怕它的内容会被截断。我说的对吗?
-
Base64 是基于文本的格式。如果您可以将 blob 转换为 clob/varchar2,那么您应该没有任何问题。如果大小受到限制,只需将数据分成更小的部分(还有很多其他问题/文章)。
-
对不起,我错了,DOM 节点大小可能有限制...
-
我找到了很多关于这个主题的文章,但实际上我还不清楚。感谢您的宝贵时间。
标签: oracle plsql blob xmldom createtextnode