Я изо всех сил пытался импортировать XML-файл, содержащий китайские символы и закодированный в UTF-8, из внешних источников в нашу базу данных Oracle, которая использует кодирование US7ASCII. Тем не менее, ошибка ниже продолжает вызывать:
pkg_dxe.get_xmldata: ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00200: could not convert from encoding UTF-8 to US-ASCII
Error at line 1
Код PL \ SQL, который обрабатывает процесс импорта:
v_xml := XMLType(bfilename('XMLDIR_IBISAPP', 'xmldata.xml'), nls_charset_id('UTF8'));
Select count(*) into v_cnt from XML_TAB_A;
If v_cnt > 0 then
update XML_TAB_A set
xml_data = v_xml,
timestamp = sysdate;
else
Insert into XML_TAB_A(xml_data, timestamp) values (v_xml, sysdate);
end if;
Образец XML:
<?xml version="1.0" standalone="yes" ?>
<APPLICATION>
<DXE_APPLICATION>
<APP_TRAN_NO>20180621031622817</APP_TRAN_NO>
</DXE_APPLICATION>
<DXE_CUSTOMER>
<APP_TRAN_NO>20180621031622817</APP_TRAN_NO>
<SEQ>0</SEQ>
<CUST_TITLE>Mr.</CUST_TITLE>
<CUST_NAME>HELLO</CUST_NAME>
<CUST_GNAME>HELLO</CUST_GNAME>
<CUST_ONAME>hello</CUST_ONAME>
<CUST_NAME_CHN>陳大文</CUST_NAME_CHN>
</DXE_CUSTOMER>
</APPLICATION>
Поле, ответственное за ошибку, - Cust_Name_Chn, однако нельзя исключать, что китайские иероглифы будут предоставлены и в других полях.
Есть ли способ правильно импортировать XML в нашу базу данных Oracle, не вызывая ошибки, если он содержит китайские иероглифы? Это допустимо, если китайские иероглифы не могут быть прочитаны после импорта на этом этапе.
Я пытался использовать функцию CONVERT (), но ошибка LPX-00200 по-прежнему сохраняется.