Oracle xml_dom.writeToClob игнорирует набор символов

Я пытаюсь создать XML-файл с помощью Oracle. После генерации xml с помощью dbms_xmldom он сохраняется в CLOB и позже записывается в таблицу.

Проблема в том, что набор символов ('UTF-8') не включен в заголовок, даже если он указан с помощью процедуры setCharset ().

Ниже приведен сценарий оракула.

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"/>

person pragan    schedule 30.04.2013    source источник


Ответы (1)


Пока ничего плохого. В качестве обходного пути вы можете использовать

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