PL / SQL例外の概要では、OracleDatabaseでユーザー定義の例外を宣言する方法が3つあることを学びました。このチュートリアルでは、最初の方法を検討し、Exceptionデータ型の変数を使用してユーザー定義の例外を宣言する方法を学習します。
Exception変数を使用してユーザー定義の例外を宣言することは、3つのステップのプロセスです。これらの3つのステップは–
- 例外データ型の変数を宣言する– この変数は、その肩にすべての負担をかけることになります。
- 例外を発生させる– これは、例外をトリガーする条件についてコンパイラーに通知する部分です。
- 例外を処理する– これは、発生したエラーがトリガーされたときに何が発生するかを指定する最後のセクションです。
このPL/SQLチュートリアルでは、PL / SQLコードを使用して、これら3つのステップのそれぞれについて説明します。
デモンストレーションの目的で、除数演算で除数がゼロかどうかをチェックするコードを記述します。ゼロの場合はエラーが発生し、ユーザーに表示されます。それ以外の場合は、除算演算の結果である実際の値が出力画面に返されます。
ステップ1:例外データ型の変数を宣言する
例外変数とは、例外データ型を持つ変数を意味します。他のPL/SQL変数と同様に、匿名および名前付きPL/SQLブロックの宣言セクションで例外変数を宣言できます。この例外変数は、コードのユーザー定義の例外として機能します。
DECLARE var_dividend NUMBER := 24; var_divisor NUMBER := 0; var_result NUMBER; ex_DivZero EXCEPTION;
この宣言セクションには、4つの変数があります。これらの4つの変数のうち、最初の3つは通常のNumberデータ型変数であり、ex_DivZeroである4つの変数は特別なEXCEPTIONデータ型変数です。この変数は、このプログラムのユーザー定義の例外になります。
ステップ2:例外を発生させる
例外変数を宣言した後の次のステップは、例外を発生させることです。 PL / SQLで例外を発生させるには、Raiseステートメントを使用します。
Raise文は、コードの通常の実行フローを変更する特殊な種類のPL/SQL文です。コンパイラがraise条件に遭遇するとすぐに、制御を例外ハンドラに移します。
BEGIN IF var_divisor = 0 THEN RAISE ex_DivZero; END IF;
ここで、レイズ条件はIF-THEN条件を伴います。これにより、プログラムの制御フロー中に不要なスイッチを回避できます。 If条件を使用して、除数が0に等しい場合にのみこのエラーが発生することを確認しています。
var_result := var_dividend/var_divisor; DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);
エラーを発生させるためのロジックを記述した後、ここで行ったように、コードの他の実行可能ステートメントを記述できます。 Raiseステートメントの後、除算演算の算術演算を実行し、結果を変数var_resultに格納し、DBMSOUTPUTステートメントを使用して出力として表示します。
ステップ3:例外を処理する
これがコードのメインセクションです。ここでは、ユーザー定義の例外のロジックを記述し、そのエラーが発生した場合に何をすべきかをコンパイラーに指示します。
EXCEPTION WHEN ex_DivZero THEN DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero'); END; /
ここに、変数ex_DivZeroの例外ハンドラーがあります。例外処理セクションには、ex_DivZeroであるユーザー定義エラーが発生したときに表示されるDBMSOUTPUTステートメントがあります。
それでは、これらすべてのコードのチャンクをグループ化しましょう。
OracleデータベースでPL/SQLユーザー定義の例外を使用してゼロ除算エラー
SET SERVEROUTPUT ON; DECLARE var_dividend NUMBER := 24; var_divisor NUMBER := 0; var_result NUMBER; ex_DivZero EXCEPTION; BEGIN IF var_divisor = 0 THEN RAISE ex_DivZero; END IF; var_result := var_dividend/var_divisor; DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result); EXCEPTION WHEN ex_DivZero THEN DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero'); END; /
このプログラムを実行する前に、SERVEROUTPUTがオンに設定されていることを確認してください。オンに設定されていないと、結果を確認できません。
手順1と同様に、除数の値をゼロに設定すると、ユーザー定義エラーex_DivZeroが発生します。これにより、上記のコードをコンパイルすると、指定したものと同じ文字列「エラーエラー-除数がゼロ」が表示されます。例外ハンドラーで(ステップ3)。
これは、Exceptionデータ型の変数を使用してユーザー定義の例外を宣言する方法に関するPL/SQLチュートリアルです。あなたが楽しんで、何か新しいことを学んだことを願っています。もしそうなら、あなたのソーシャルメディアでこのブログを共有し、私と私のチャンネルと一緒に他の人が学ぶのを手伝ってください。ありがとう&素晴らしい一日を!