从 sqlplus 中的过程将输出写入文件 - SPOOL

writing output to a file from a procedure in sqlplus - SPOOL

由于无法使用 UTL_FILE(缺乏特权,更改不会发生:/)我正在使用 SPOOL 将我的程序输出到 CSV 文件中。我将 serveroutput 设置为 'on',过程使用 DBMS_OUTPUT.PUT_LINE。 我试图将其包装在 sql 文件中。

我遇到问题的部分:

spool output.csv
/
DECLARE
...
BEGIN
... 
END;
/
spool off
quit
/ 

问题是,这样整个块都会进入我的输出文件,然后是输出,而我只想要输出。

我也尝试使用带有 PIPELINED 关键字的函数并通过 PIPE ROW 方法输出行,希望 SELECT * FROM TABLE () 语法能帮助我,但它是同样的故事。

任何解决方法?

好的,终于弄清楚问题出在哪里了。标准 SQL PLUS 开关效果很好(trimspool、termout、sqlprompt 等)但是您必须直接使用 SQL Plus。如中,请勿为此使用 Oracle SQL Developer。 您在其中打开的那些该死的工作表在 SQL Plus 相关内容中的表现似乎有所不同。 我将我正在做的所有事情都转移到我用 SQL Developer 连接的机器上,直接登录到 SQL Plus,从命令行执行我的 .sql 脚本,瞧!一个干净的 .csv 文件。