プラグマ例外initが必要な理由は誰でも説明できます。プラグマと同じ仕事をするユーザ定義の例外があります。あなたの答えは高く評価されます。私たちはpragma_exception_initに行くことができます
-2
A
答えて
0
プラグマexception_initは、例外ハンドラでその名前で例外を参照できるように、例外に名前を付けるために使用されます。数千のOracle例外のほんの一部には、あらかじめ定義された名前があります。 exception_initを使用して、これらの例外の名前を作成できます。
は、私がここにフォーマットされたテキストを挿入することができますので、私は私の以前の回答を編集していますhttps://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#BABGIIBI
を参照してください。 あなたの例では、投げている例外を定義していますが、システムが投げているが名前は付けられていない既存の例外を捕まえたいのですが?次の例では、2つの特定のエラー「DATA_NOT_FOUND」とシステム・エラーであるORA-600を処理します(これらを取得するコードがあります)。 EX用
CREATE OR REPLACE PROCEDURE exception_init_demo
AS
l_routine VARCHAR2 (30) := $$plsql_unit;
severe_system_error EXCEPTION;
PRAGMA EXCEPTION_INIT (severe_system_error, -600);
BEGIN
-- Execution code goes here
NULL;
EXCEPTION
WHEN severe_system_error
THEN
-- Severe error, log it, notify the dba, re-raise the exception
log_error (
p_application => $$plsql_unit
, p_routine => l_routine
, p_message => SQLERRM || UTL_TCP.crlf || DBMS_UTILITY.format_error_backtrace()
);
notify_dba;
RAISE;
WHEN NO_DATA_FOUND
THEN
-- No data was found, this is OK, ignore error and return
return;
WHEN OTHERS
THEN
-- all other errors we will log and re-raise
log_error (
p_application => $$plsql_unit
, p_routine => l_routine
, p_message => SQLERRM || UTL_TCP.crlf || DBMS_UTILITY.format_error_backtrace()
);
RAISE;
END;
関連する問題
- 1. は、私たちが行うことができますES6で
- 2. 私たちはカスタムマーカーインターフェイスを書くことができます
- 3. 私たちは.netウィンドウアプリケーションでjavascriptを実行することができます
- 4. 私たちはこの関数をクイックソートと呼ぶことができます
- 5. は、私たちがこれを行うことができますJavaではJavaの
- 6. 私たちはFacebook Graph APIにスクリプトでアクセスすることができます
- 7. 私たちは最終的にユニットテストでブロックすることができます
- 8. 私たちはコンストラクタからプロパティにアクセスすることができます
- 9. 私たちが実行時に制約とアンカーを作ることができるとき、ビジュアルフォーマット言語は本当にiOSで役に立ちます
- 10. Rcpp ::私たちが行うことができますRcppで多項分布からサンプルに行列サブビュー
- 11. 私たちはKafka Consumerによって特定のキー付きメッセージを聞くことができます
- 12. 私たちがJMeterで行うことができるプロジェクトテストのタイプ
- 13. 私たちはfacebookをプログラムでログアウトすることができます
- 14. 私たちはPHPでkoiskページを開発することができます
- 15. 私たちはもっと速くiPhoneで画像をアップロードすることができます
- 16. 私たちはアプリ内で2タブビューを持つことができますか?
- 17. 私たちはIgniteメモリテーブルを作成することができますパージング
- 18. 私たちはAIDLをリモートデバイスから呼び出すことができます
- 19. 私たちはアンドロイドのネイティブAPIを呼び出すことができます
- 20. 誰かが私たちがこの種の行動をどのように作り出すことができるか教えてください。そして、私たちはこれを行動と呼んでいますか?崩壊前
- 21. 私たちはストーリーボードxmlコードを読むことができますか?
- 22. 私たちはmsのアクセスを組み込むことができます
- 23. 私たちはOracleの外部テーブルを使うことができます
- 24. 私は非アクティブ時にログアウトページに行くことができます
- 25. 私たちは永遠にJavaアプリケーションを実行し続けることができます
- 26. Asp.netのWeb.configは - 私たちは別のファイル、すなわちに私たちのconnectionStringsを移動することができますweb.configファイル
- 27. 私たちはjdkでresteasyを実行できますか?
- 28. は、私たちがこれを行うことができ、通常のセマンティックUIで、グリッド
- 29. 私たちはshoutemとネイティブベースをパフォーマンスを失うことなく同時に使用できます
- 30. 私たちはpythonでリストを返すことはできませんか?
: としてプロシージャproc_pragma_demo を作成するか、または置き換えるI番号:= 1; i_greater_than_zero例外。 プラグマexception_init(i_greater_than_zero、-1234); begin if(i> 0)then raise i_greater_than_zero; end if; 例外 次にi_greater_than_zeroが のときdbms_output.put_line( 'i値がゼロより大きい:'); end;上記の例では、たとえプラグマを持っていなくても同じ仕事をしています。プラグマの意義は何ですか? –
ありがとう、ブライアン。私は理解した。 –