【问题标题】:Oracle xml_dom.writeToClob does ignore the character setOracle xml_dom.writeToClob 确实忽略了字符集
【发布时间】:2013-04-30 08:59:48
【问题描述】:

我正在尝试使用 oracle 生成一个 xml 文件。使用 dbms_xmldom 生成 xml 后,将其存储在 CLOB 中,然后写入表中。

问题是字符集 ('UTF-8') 未包含在标头中,即使它是使用 setCharset() 过程指定的。

下面是oracle脚本,

declare
  export_file_   CLOB ;     
  str_export_file_ xmldom.DOMDocument;
  main_node xmldom.DOMNode;
  root_node xmldom.DOMNode;
  root_elmt xmldom.DOMElement;

begin

    str_export_file_ := xmldom.newDOMDocument;
    xmldom.setVersion(str_export_file_, '1.0');
    xmldom.setCharset(str_export_file_ , 'UTF-8');
    main_node := xmldom.makeNode(str_export_file_);
    root_elmt := xmldom.createElement(str_export_file_,'TextTranslation');
    xmldom.setAttribute( root_elmt, 'version' ,'1.0');
    xmldom.setAttribute( root_elmt, 'language' ,'ja');
    xmldom.setAttribute( root_elmt, 'module' ,'DEMOAND');
    xmldom.setAttribute( root_elmt, 'type' ,'VC');
    root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));

   export_file_ :=' ';
   xmldom.writeToClob( str_export_file_,export_file_,'UTF-8');

   dbms_output.put_line ( export_file_ ); 
end;

输出是,

<?xml version="1.0"?>
<TextTranslation version="1.0" language="ja" module="DEMOAND" type="VC"/>

【问题讨论】:

    标签: oracle plsql xmldom


    【解决方案1】:

    到目前为止没有任何问题。作为一种解决方法,您可以使用

    export_file_ := REPLACE(
         export_file_
        ,'<?xml version="1.0"?>'
        ,'<?xml version="1.0" encoding="UTF-8" ?>'
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2011-08-06
      • 2020-04-20
      • 2016-06-25
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      相关资源
      最近更新 更多