1

我需要生成一个 XML 并将其写入文件。我使用了 utl_file.put_line。它创建文件,但没有写入任何内容。此外,它没有显示任何错误。我已经检查过我是否有权在目录上写入。代码:

SET serveroutput ON;
DECLARE
    ctx DBMS_XMLGEN.CTXHANDLE;
    resposta CLOB;
    xml_file utl_file.file_type;
BEGIN
    xml_file:=utl_file.fopen ('DATA_PUMP_DIR', 'xml.txt', 'W');
    ctx := dbms_xmlgen.newContext ('select * from tb_museu M where M.cnpj=111111 OR   M.cnpj=222222');
    dbms_xmlgen.setRowsetTag (ctx, 'TODOS_OS_MUSEUS');
    dbms_xmlgen.setRowTag (ctx, 'MUSEU');
    resposta :=dbms_xmlgen.getXML (ctx);
    utl_file.put_line (xml_file,'teste');
    --utl_file.put_line (xml_file,resposta);
   dbms_xmlgen.closeContext(ctx);
END;
/
4

1 回答 1

1

出于性能原因,UTL_FILE 使用一个缓冲区,该缓冲区会定期刷新到磁盘上的实际文件中。通常你不需要担心刷新,除非你需要在最后关闭文件UTL_FILE.fclose(xmlfile);

于 2014-02-19T04:24:07.847 回答