PLSQL 脚本不以两种不同格式(即 .csv 和 .log)导出相同输出的假脱机

PLSQL script not exporting the spool in two different format (i.e .csv and .log) for the same output

我想为下面给定的示例以两种不同的格式导出假脱机,但不幸的是,假脱机 Main_Spool.log 没有收集所有输出。有什么 possibility/alternative 方法可以做到这一点吗?

SET SERVEROUTPUT ON
SET FEEDBACK OFF
SET ECHO OFF
SET VERIFY OFF

SPOOL Main_Spool.log
DECLARE 
...................
BEGIN 
<QUERY - 1>
DBMS_OUTPUT.PUT_LINE('First Output');
END;
/
DECLARE 
................
BEGIN      
<QUERY - 2>
DBMS_OUTPUT.PUT_LINE('Second Output');
END; 
/
SPOOL OFF
/
SPOOL Main_Spool.log append
SPOOL CSV_Format_spool.csv
DECLARE 
................
BEGIN      
<QUERY - 2>
DBMS_OUTPUT.PUT_LINE('Third Output');
END;
/
SPOOL OFF
/
  

spool 一次只能写入一个文件。您将需要使用 OS 命令来复制它,例如

host copy Main_Spool.log CSV_Format_spool.csv

或者将所有内容假脱机到单独的文件,然后根据需要使用主机命令组合它们:

host type file1 file2 > file3

顺便说一下,/ 字符执行 SQL 缓冲区中的任何内容,因此上面的脚本将执行 'Second Output' 块两次。