求助,我的xml文件解析不了
求助,我的xml文件解析不了
刚接触这个,写了个程序,但是每次都报错,不知道是哪里错了
xml文件
<?xml version="1.0" encoding="GBK" ?>
- <wlyx>
- <ddxx>
<id>4760</id>
<khid>964</khid>
</ddxx>
</wlyx>
过程如下:
procedure xml_to_db(fileName IN varchar2) as
dst_loc CLOB;
crms_group_relation DBMS_XMLSTORE.CTXTYPE;
N NUMBER;
src_loc bfile := bfilename('xml_dir', fileName); ---xml_dir是我创建的DIRECTORY对象
amt number := dbms_lob.lobmaxsize;
src_offset number := 1;
dst_offset number := 1;
lang_ctx number := dbms_lob.default_lang_ctx;
warning number;
v_exists PLS_INTEGER := 0;
quantity exception;
begin
DBMS_LOB.CREATETEMPORARY(dst_loc, true);--该语句必写,原因不明,否则报错。
DBMS_OUTPUT.PUT_LINE('------------ LOB LOADCLOBFORMFILE EXAMPLE ------------');
dbms_lob.fileopen(src_loc, dbms_lob.file_readonly);
v_exists := DBMS_LOB.fileexists(src_loc);
---- 用于测试文件名以及路径是否正确
IF v_exists = 0 THEN
dbms_output.put_line('FILE NOT EXIST');
ELSE
dbms_output.put_line('FILE AND DIR VALID');
END IF;
----将数据从OS文件加载到CLOB变量-------
dbms_lob.LOADCLOBFROMFILE(dst_loc,
src_loc,
amt,
dst_offset,
src_offset,
dbms_lob.default_csid,
lang_ctx,
warning);
dbms_output.put_line(' Amount specified ' || amt);
dbms_output.put_line(' Number of bytes read from source: ' ||
(src_offset - 1));
dbms_output.put_line(' Number of characters written to destination: ' ||
(dst_offset - 1));
if (warning = dbms_lob.warn_inconvertible_char) then
dbms_output.put_line('Warning: Inconvertible character');
end if;
dbms_lob.filecloseall();
DBMS_OUTPUT.PUT_LINE(dst_loc);
CRMS_GROUP_RELATION := DBMS_XMLSTORE.NEWCONTEXT('WLYX_DD_ZF');
DBMS_XMLSTORE.CLEARUPDATECOLUMNLIST(CRMS_GROUP_RELATION);
DBMS_XMLSTORE.SETUPDATECOLUMN(CRMS_GROUP_RELATION, 'ID');
DBMS_XMLSTORE.SETUPDATECOLUMN(CRMS_GROUP_RELATION, 'KHID');
N := DBMS_XMLSTORE.INSERTXML(CRMS_GROUP_RELATION, DST_LOC);
DBMS_OUTPUT.PUT_LINE(N);
DBMS_XMLSTORE.CLOSECONTEXT(CRMS_GROUP_RELATION);
end;
每次都报错如下:
ORA-31011: XML 语法分析失败
ORA-19202: XML 处理
LPX-00222: 接收到来自 SAX 回调函数的错误 时出错
ORA-06512: 在 "SYS.DBMS_XMLSTORE", line 78
ORA-06512: 在 "CDATA.CRIDATA_WLYX_DD", line 129
ORA-06512: 在 line 3
求大虾帮忙,不胜感谢