create or replace directory exp_dir as 'e:\oracle';
/
create or replace procedure table2xml(result in out nocopy clob,
filename in varchar2) is
xmlstr varchar2(32767);
line varchar2(2000);
fhandle utl_file.file_type;
begin
fhandle := utl_file.fopen('EXP_DIR', filename, 'w');
xmlstr := dbms_lob.substr(result, 32767);
loop
exit when xmlstr is null;
line := substr(xmlstr, 1, instr(xmlstr, chr(10)) - 1);
dbms_output.put_line('| ' || line);
utl_file.put_line(fhandle, line);
xmlstr := substr(xmlstr, instr(xmlstr, chr(10)) + 1);
end loop;
utl_file.fclose(fhandle);
end;
/
declare
queryctx dbms_xmlquery.ctxType;
result clob;
begin
queryctx := dbms_xmlquery.newContext('select username from all_users where username<>''SYSTEM'' and username<>''SCOTT''');
result := dbms_xmlquery.getXML(queryctx);
table2xml(result, 'table2xml.xml');
dbms_xmlquery.closeContext(queryctx);
end;
阅读(928) | 评论(0) | 转发(0) |