Sql

SQL * PLUS例外処理-SP2-0606



Sql Plus Exception Handling Sp2 0606



SQLP * PLUSを使用する場合、SQL * PLUSの特定のコマンドを実行すると、エラーがない限り、正常であると見なされます。逆に、SQLまたはPL / SQLコマンドが実行された場合、正しいテキストが返された場合、実行は正常です。 SQL * PLUSの実行でエラーが発生すると、デフォルトでエラーが報告され、実行が続行されます。この機能は、コマンドを手動で対話的に実行する場合に非常に優れていますが、スクリプトで実行する場合は、SQLPLUSが終了して、エラーが発生したときにエラーを報告できることが望ましいです。

SQLPLUSの実行には2種類のエラーがあります。 1つはシステムレベルのエラーです。たとえば、ファイルを作成できないため、spoolコマンドは失敗します。 SP2-0606:SPOOLファイルを作成できませんシステムレベルのエラーです。この種のエラーを処理するようにSQL * PLUSをカスタマイズする場合は、WHENEVEROSERRORコマンドを使用できます。コマンドの構文は次のとおりです。

SQLコード
  1. OSERRORのときはいつでもロールバック]
WHENEVER OSERROR CONTINUE [COMMIT

For example, execute the following commands in SQL*PLUS:

SQLコード
  1. SQL> OSERROR EXITFAILUREの場合
  2. SQL> SPOOL / root / test
  3. SP2-0606:できません作成するSPOOLファイル'/root/test.lst'
  4. O / Sメッセージ:しないそのようなファイルまたはディレクトリ
  5. 切断されましたからオラクルデータベース10g EnterpriseEditionリリース10.2.0.4.0-64ビット本番
  6. パーティショニング、OLAP、データマイニングそして リアルアプリケーションテストオプション
  7. $エコー$?
  8. 1
SQL> WHENEVER OSERROR EXIT FAILURE SQL> SPOOL /root/test SP2-0606: Cannot create SPOOL file '/root/test.lst' O/S Message: No such file or directory Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options $ echo $? 1
The other is SQL or PL/SQL execution error. Similarly, you can use WHENEVER SQLERROR to customize the behavior of SQL*PLUS. The syntax of the command is as follows, and the specific examples are not repeated.
もう1つは、SQLまたはPL / SQLの実行エラーです。同様に、WHENEVER SQLERRORを使用して、SQL * PLUSの動作をカスタマイズできます。コマンドの構文は次のとおりであり、特定の例は繰り返されません。 SQLコード
  1. SQLERRORが失敗するたびに

転載:https://blog.51cto.com/393944/889916