首页 > 解决方案 > 在 oracle ISO 数据库中编码文件 XML UTF 8(重音问题)

问题描述

xml 文件采用 utf-8 编码。我想将此文件加载到以 ISO 编码的 oracle 数据库中:NLS_CHARACTERSET = WE8ISO8859P15。

我们使用了这个功能:

declare
   i_aag_id  number := 3878;
   i_dir varchar2(50) := 'EXT_TAB_DIR';
   i_file varchar2(50) := 'PVAG_3878_AR.xml';
   i_type_pjs varchar2(20) := 'PVAR';
   l_clob   CLOB;
   xml_pjs XMLTYPE;
   l_bfile  BFILE := BFILENAME(i_dir, i_file);
begin
   DBMS_LOB.createtemporary (l_clob, TRUE);
   DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
   DBMS_LOB.loadfromfile(l_clob, l_bfile, DBMS_LOB.getlength(l_bfile));
   insert into adb_ag_pjs (aag_id,aag_pjs,aag_pjs_doc,aag_pjs_archive,aag_type_pjs)
   values (1,XMLTYPE.createXML(l_clob),null,1,i_type_pjs);
end;

不幸的是,重音没有正确加载:

<?xml version = '1.0' encoding = 'UTF-8'?>
<pjs:Campaign Version="1.0" TrackId="C222_PVAR_3878" Name="C222_PVAR_3878" BreakdownCode="C222" Application="REALESTATE" xmlns:com="http://www.maileva.fr/CommonSchema" xmlns:spec="http://www.maileva.fr/MailevaSpecificSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pjs="http://www.maileva.fr/MailevaPJSSchema">
<pjs:Requests>
   <pjs:Request MediaType="PAPER" TrackId="C222_PVAR_3878">
     <pjs:Recipients>
        <pjs:Internal>
           <pjs:Recipient TrackId="MLE PARE MARIE THÿ¿Rÿ¿SE" Id="1">
                 [...]

您是否知道在带有重音符号的 oracle iso 数据库中加载编码为 utf-8 的 xml 文件?谢谢

标签: xmloracleencodingutf-8iso

解决方案


推荐阅读