電子書籍の厳選無料作品が豊富!

すいません、教えてください。

以下のようなCMDバッチを作成しました。

TEST.cmd------------

sqlplus -s ID/PASS@DB @MAIN.sql 'SUB1.sql' 'SUB2.sql' > MAIN.log
echo %ERRORLEVEL%

MAIN.sql------------

@&1
@&2

commit;

quit;

これを実行した場合、MAIN.sqlの最後のコマンドquit;の
実行結果を返してきているのでしょうか?
SUB1.sql、SUB2.sqlで失敗していても%ERRORLEVEL%で0が返ってきます。

MAIN内のそれぞれのsqlの実行結果ログを取得することは可能でしょうか?
SUB.sqlの内容はいずれも単純なMERGE文です。

識者の方がいればご教示いただきたく存じます。
よろしくお願いいたします。

A 回答 (1件)

こんにちわ。



> SUB1.sql、SUB2.sqlで失敗していても・・・
MAIN.sql の最初で、以下のコマンドを実行してみて下さい。

----------------------------------------------------
WHENEVER SQLERROR EXIT FAILURE ROLLBACK
----------------------------------------------------

> MAIN内のそれぞれのsqlの実行結果ログを取得
MAIN.sql を以下のようにしてみて下さい。
sub.log に追加でログを取得していきます。

----------------------------------------------------
set echo on
spool sub.log append

@&1
@&2

commit;
spool off
quit
----------------------------------------------------
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!