没有数据时删除空假脱机文件

Deleting empty spool file when no data

我有一个 sql 脚本可以创建假脱机文件。

当我没有数据时,我正在创建一个空文件。我不希望在这种情况下创建文件。

我该怎么做?

set termout off;
set newpage 0;
set space 0;
set linesize 255;
set pagesize 0;
set echo off;
set feedback off;
set heading off;
set verify off;
set trimspool on;



UNDEFINE p_xml_filename


DEFINE p_xml_filename=&1

spool &p_xml_filename

SELECT * FROM emp;

spool off;
set feedback on
set verify on
set heading on
set echo on
exit

与其在SQL*Plus处理,我宁愿在OS级别处理 .在您的场景中,您只想在数据存在时假脱机处理文件。但是,为此,您需要检查 table 中的 COUNT 行,因此这是流程的开销。

或者,我会:

  • 让假脱机永远发生
  • 对假脱机文件执行 grep 以检查内容
  • 如果找不到内容,请删除 文件。 rm filename