我有一个 test.sh 脚本,其中包含以下代码:
LOG=output.log
sqlplus -s user/pwd@db << EOF > ${LOG}
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
@testsqlfile
EOF
和testsqlfile.sql文件:
SET SERVEROUTPUT ON
EXEC DBMS_OUTPUT.PUT_LINE('TEST');
我无法将testsqlfile.sql中打印的日志添加到output.log文件中。
如果我直接在 test.sh 脚本中添加 SET
serveroutput和
EXEC DBMS_OUTPUT.PUT_LINE('TEST');
,它就可以正常工作。但我无法将其添加到按照描述执行的外部 testsqlfile.sql 的 output.log 文件中。
据我发现它应该有效,但事实并非如此。
谢谢。
由于没有提供答案,我只是直接在 bash 中执行 sql 脚本。
sqlplus -s user/pwd@db << EOF > ${LOG}
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
Direct query
EOF
谢谢