我创建了一个用于从表生成XML文件的存储过程,请查看以下存储过程
create or replace
procedure dump_pcd (
V_TABLE_NAME IN varchar2,
v_FLAG OUT NUMBER
)
AS
BEGIN
DECLARE
xt_data xmltype;
v_ctx dbms_xmlgen.ctxHandle;
rc_data sys_refcursor;
v_file UTL_FILE.file_type;
BEGIN
-- v_file := UTL_FILE.fopen('MYXML', V_TABLE_NAME ||'.xml', 'A');
-- v_file := UTL_FILE.fopen('MYXML', V_TABLE_NAME || '.xml', 'A');
v_file := UTL_FILE.fopen('MYXML', V_TABLE_NAME || '.xml', 'W');
UTL_FILE.put_line(v_file, '<XML><'||V_TABLE_NAME||'></'||V_TABLE_NAME||'> <RECORDS>');
OPEN rc_data FOR
'select * from '|| V_TABLE_NAME||' ';
v_ctx := dbms_xmlgen.newContext (rc_data);
DBMS_XMLGEN.SETNULLHANDLING(v_ctx,null);
DBMS_XMLGEN.setrowsettag(v_ctx, 'RECORDS');
DBMS_XMLGEN.setrowtag(v_ctx, 'RECORD');
xt_data := dbms_xmlgen.getXMLType (v_ctx);
dbms_xmlgen.closeContext (v_ctx);
dbms_xslprocessor.clob2file(xt_data.getclobval( ), 'MYXML', ''||V_TABLE_NAME||'.xml');
v_FLAG := 1;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
dbms_xmlgen.closeContext (v_ctx);
v_FLAG := 0;
end ;
END dump_pcd;
它的工作原理但在60000行之后的某些行显示错误 我也替换&lt; ,&gt; ,&amp; char但仍然发生错误
ora-30625 method dispatch on null self argument is disallowed
请检查代码和帮助