尽管 "set serveroutput off",Oracle 仍然显示假脱机语句?

Oracle still showing spool statement despite "set serveroutput off"?

我运行以下命令:

SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF SERVEROUTPUT OFF

SPOOL c:/filea1.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 1;

SPOOL c:/filea2.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 2;

SPOOL c:/filea3.sql
SELECT /*INSERT*/ * FROM TBL WHERE A = 3;

除最后一个文件外,每个文件的最后一行都有假脱机语句,就像这样-

row1
row2     
SQL> spool C:\next_file_name.sql

我尝试将 set 语句放在每对 spool 和 select 语句之间,但结果是一样的。我还尝试将 set 行分解为单独的语句并将它们全部放在 spool/select 之间,但结果仍然相同。

有什么建议吗?

解决方法是把你发布的代码:

set pagesize ...

...

SELECT /*INSERT*/ * FROM TBL WHERE A = 3;

到 .sql 脚本中(我们称它为 moshe.sql)。然后,在 SQL*Plus 提示符下,运行 该脚本:

SQL> moshe.sql

它会让结果看起来像你预期的那样。

顺便说一句,完成后不要忘记 spool off(您 "forgot" 在您的代码中这样做)。