我正在处理用于生成xml文件的存储过程。
我的问题是生成的xml文件不包含encoding
标记。
这是一个小例子:
declare
doc DBMS_XMLDOM.DOMDocument;
l_output_clob CLOB ;
begin
l_output_clob := ' ';
doc := DBMS_XMLDOM.newDOMDocument;
DBMS_XMLDOM.setVersion(doc, '1.0');
DBMS_XMLDOM.setCharset(doc, 'ISO-8859-15');
dbms_xmldom.writeToClob(doc,l_output_clob) ;
dbms_output.put_line(l_output_clob);
end;
当我在11g数据库上执行时,结果为:
<?xml version="1.0"?>
上面的代码用于使用以下代码生成xml文件:
DBMS_XMLDOM.writeToFile
所以缺少编码标签,我不知道为什么。 有什么想法吗?
非常感谢。
答案 0 :(得分:1)
这可能是一种解决方法,但您可以使用以下编码属性:
DECLARE
doc dbms_xmldom.domdocument;
l_output_clob CLOB;
BEGIN
l_output_clob := ' ';
doc := dbms_xmldom.newdomdocument;
dbms_xmldom.setversion(doc, '1.0" encoding="ISO-8859-15');
dbms_xmldom.writetoclob(doc, l_output_clob);
dbms_output.put_line(l_output_clob);
END;
根据Metalink:Xmldom.SetCharSet不能使用WriteToClob Nor WriteToBuffer(Doc ID 1506543.1)
SETCHARSET过程仅用于writeToFile。 SETCHARSET是 在writeToClob和writeToBuffer中被忽略。这是设计的。