1

我正在尝试将 XML 转换为 CLOB 并将其保存在表中。DB 版本为 Oracle 9.2.0.8。这就是我创建 XML 的方式。

DECLARE    
    p               dbms_xmlparser.parser;
    xml_doc         dbms_xmldom.domdocument;
BEGIN

    p := dbms_xmlparser.newParser;
    dbms_xmlparser..parseBuffer(p, '<?xml version="1.0" encoding="'||codepage||'"?><elm/>');
    d := dbms_xmlparser.getDocument(p);
    ...
END;

但是在将 XML 转换为 CLOB 之后,变量 v_xml_clob 中的西里尔字符变得不可读:

v_xml_clob    clob;
DBMS_LOB.createtemporary (v_xml_clob, TRUE);
dbms_xmldom.writeToClob(xml_doc , v_xml_clob);

但是当我将 XML 写入文件时,一切正常:dbms_xmldom.writeToFile(xml_doc , PATH); 这是文本变得错误的示例:

Сберегательные депозиты резидентов - национальная валюта
is becoming
бсх№хурђхыќэћх фхяючшђћ №хчшфхэђют - эрішюэрыќэрџ трыўђр

请帮我解决这个问题。

4

1 回答 1

0

以这种方式解决它:

v_xml_clob := convert(v_xml_clob,'CL8ISO8859P5','CL8MSWIN1251');
于 2013-01-10T06:48:13.327 回答