0

CA Workload Control Center (Autosys) を使用して Windows バッチ ファイルを実行しています。このバッチ ファイルは、SQLPlus を呼び出す別のバッチ ファイルを次のように呼び出します。

sqlplus ユーザー名/パスワード %1 %2 %3

これはすべてリモートで行われているため、サーバーで実際に何が起こっているのかわかりません。

sqlplus ファイルが存在するが無効な構文 (存在しないテーブルを参照するなど) がある場合、sqlplus プロンプトは終了し、バッチ ファイルに戻りますか?

私が尋ねる理由は、Autosys からのログ ファイルを見ていて、SQLPlus 呼び出しが行われたことを示しているためです。エラー AT LINE 2: 無効なテーブルが出力されますが、その後、バッチ スクリプトで他のアクティビティは表示されません。複数のエコーやファイルのコピーなどがあります。おそらく SQLPlus を終了していないように見えますか?

失敗した場合に SQL スクリプトを実行した後、SQLPlus を終了して呼び出し元のスクリプトに戻るように SQLPlus に渡す必要があるパラメーターはありますか?

編集:SQLファイル内でも「WHENEVER SQL ERROR」を使用しており、ログファイルには次のように表示されます。

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

しかし、バッチ スクリプトの残りの部分を続行する必要があることをまだ期待していますが、そうではありません。上記は、Autosys がログに表示する最後のものです。

4

2 に答える 2

0

SQLPlus 命令 WHENEVER SQLERROR を参照してください。Oracle ドキュメントで説明されています。

http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm

于 2014-01-15T15:41:01.960 に答える
0

解決策を見つけたSO投稿:

sqlplus -l test/Test@mydatabase @script.sql; を実行できます。-l フラグは、一度だけ接続を試行し、何らかの理由で接続に失敗した場合、プロンプトを表示せずに終了することを意味します。sqlplus -? の出力を確認するか、ドキュメントを参照してください。

于 2014-01-29T20:53:21.070 に答える