データベースまたは OS に問題が発生した場合に失敗するように、Oracle データベース スクリプトをセットアップするのが好きです。
SQLCL への移行を検討してきましたが、データベース以外の問題のロールバックを検出してトリガーするために取った SQL*Plus アプローチが SQLCL で失敗しており、代替ソリューション (または適切な回避策) があるかどうか疑問に思いました。
SET ERRORLOGGING
SPエラーをSPERRORLOGに送信するために使用しており、コミットする前にそれらを検出して、ロールバック/ブランチ/続行/アラートなどを決定できます.
次の問題の修正を期待して、最新の sqlcl (2016 年 6 月 sqlcl-4.2.0.16.175.1027) を入手しましたが、問題は解決しません。
を発行するSET ERRORLOGGING ON
と、次のようになります。
SQL> SET ERRORLOGGING ON
SP2-0158: unknown SET option beginning "errorloggi..."
手動エントリは、このオプションが SQLCL で変更されたことを示しているようです。
SQL> help set errorlogging
SET ERRORLOGGING
ERRORL[OGGING]{ON|OFF}
[TABLE [schema.]tablename] [TRUNCATE] [IDENTIFIER identifier]
これは単なるバグですか、それとも ERRORLOGGING を起動して実行するために他に何か必要ですか?
これがバグである場合、SP(2) エラーを検出する良い代替手段はありますか?