1
XML을 생성하여 파일에 기록해야합니다. utl_file.put_line을 사용했습니다. 파일을 작성하지만 아무것도 작성되지 않습니다. 또한 오류가 표시되지 않습니다. 이미 디렉토리에 쓸 수있는 권한이 있는지 확인했습니다. 코드 : 성능상의 이유로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;
/
방금 dbms_xslprocessor.clob2file을 사용하여 내 xml을 내 파일로 보낼 수 있음을 알았습니다. 하지만 utl_file.put_line이 작동하지 않는 이유는 아직도 알고 싶습니다. –
아마도 utl_file.fclose로 파일을 닫지 않았기 때문일 것입니다. utl_file은 버퍼에 데이터를 보관하고 정기적으로 디스크에 플러시하거나 fclose하면 플러시합니다. –
@JeffreyKemp 예, 해결되었습니다. 답변을 드리 자면 투표 할 수 있습니다. –