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

时间:2015-02-26 12:04:47

标签: oracle sqlplus

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

我遇到问题的部分:

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

问题是,这样整个块落在我的输出文件中,然后是输出,而我只想输出。

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

有任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

好的,终于找出了问题所在。标准的SQL PLUS开关工作得很好(trimspool,termout,sqlprompt等)但是你必须直接使用SQL Plus。如同,请不要使用Oracle SQL Developer。 你在其中打开的那些该死的工作表似乎在SQL Plus相关的东西中表现不同。 我将我正在做的所有事情移动到我用SQL Developer连接的机器上,直接登录到SQL Plus,从命令行执行我的.sql脚本,瞧!一个干净的.csv文件。