これまでのいくつかのチュートリアルは、PL/SQL関数やストアドプロシージャなどのPL/SQLサブルーチンに関するものであったため、それらの呼び出し表記について説明することが必須になります。 PL / SQLサブルーチンの概念を学習することは、それらの呼び出し表記も学習するまで、完全であるとは見なされません。
PL / SQLサブルーチンの表記法とは何ですか?
表記法の呼び出しは、PL/SQL関数やストアドプロシージャなどのサブルーチンのパラメータに値を提供する方法です。
サブルーチンの呼び出し表記のタイプ
Oracle PL / SQLには、3種類の呼び出し表記があります。これらは次のとおりです。
- 位取り記数法
- 名前付き表記と
- 混合呼び出し表記
位置の呼び出し表記
位置表記は、ほとんどすべてのコンピュータープログラミング言語で見られる最も一般的な呼び出し表記です。位置表記では、各仮パラメータの値を順番に指定する必要があります。つまり、プロシージャまたは関数で宣言されたのと同じ順序で、仮パラメータの値を指定する必要があります。
位置表記では、データ型と実際のパラメーターの位置が仮パラメーターと一致する必要があります。
推奨読書:実際のパラメータと正式なパラメータ
例:PL/SQLサブルーチンを呼び出すための位取り記数法。
CREATE OR REPLACE PROCEDURE emp_sal (dep_id NUMBER, sal_raise NUMBER) IS BEGIN UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id; DBMS_OUTPUT.PUT_LINE ('salary updated successfully'); END; /
これは、いくつかの小さな変更はありますが、パラメータを使用してストアドプロシージャを作成する方法についてPL/SQLチュートリアル42で行ったのと同じ例です。ここで、位置呼び出し表記を使用する場合は、宣言されているのと同じ方法で、上記のプロシージャの両方のパラメータに値を指定する必要があります。
Oracleデータベースの位置表記を使用したストアドプロシージャの呼び出し
EXECUTE emp_sal(40,2);
この単純なプロシージャ呼び出しでは、値40は正式なパラメータdep_idに対応し、値2はパラメータsal_raiseに対応します。
名前付き呼び出し表記
名前付き呼び出し表記を使用すると、名前を使用して正式なパラメーターに値を渡すことができます。これにより、必須または必須のパラメータのみに値を割り当てることができます。
この呼び出し表記は、パラメーターを含むサブルーチンがあり、それらのパラメーターの一部が必須で、一部がオプションであり、必須パラメーターのみに値を渡したい場合に役立ちます。
アソシエーションオペレーター
名前を使用して仮パラメータに値を割り当てるために、関連付け演算子を使用します。これは、等しい(=)記号と大なり記号(>)の組み合わせです。演算子の左側に仮パラメータの名前を書き込み、演算子の右側に割り当てる値を書き込みます。
PL/SQLサブルーチンを呼び出すための名前付き呼び出し表記の例
CREATE OR REPLACE FUNCTION add_num (var_1 NUMBER, var_2 NUMBER DEFAULT 0, var_3 NUMBER ) RETURN NUMBER IS BEGIN RETURN var_1 + var_2 + var_3; END; /
上記の関数には3つのパラメーターがあります。これら3つのパラメーターのうち、2つは必須で、1つはオプションでデフォルト値は0です。
この関数は、位置表記を使用して呼び出すことができます。ただし、満たす必要のある制限があります。つまり、宣言されたのと同じ順序ですべての仮パラメータに値を指定する必要があり、仮パラメータと実際のパラメータのデータ型が一致する必要があります。
したがって、オプションのパラメーターを省略してデフォルト値を使用する場合、またはパラメーターが宣言されたパラメーターの順序を忘れた場合は、その場合、位置表記を使用して上記のサブルーチンを呼び出すのは少し難しくなります。このようなシナリオでは、名前付き呼び出し表記を利用できます。この呼び出し表記は、サブルーチンを呼び出す際に必要な柔軟性を提供します。
Oracleデータベースで名前付き呼び出し表記を使用したPL/SQL関数呼び出し
DECLARE var_result NUMBER; BEGIN var_result := add_num(var_3 => 5, var_1 =>2); DBMS_OUTPUT.put_line('Result ->' || var_result); END;
PL / SQL関数呼び出しについては、YouTubeチャンネルの同じトピックに関するビデオチュートリアルで詳しく説明しました。
PL/SQLサブルーチンを呼び出すための混合呼び出し表記
名前が混合呼び出し表記で示唆しているように、名前付き表記と位置呼び出し表記の組み合わせを使用してサブルーチンを呼び出すことができます。混合呼び出し表記は、パラメータリストが最初にすべての必須パラメータで定義され、次にオプションのパラメータで定義される場合に非常に役立ちます。
PL/SQLサブルーチンを呼び出すための混合呼び出し表記の例
これは、名前付き呼び出し表記を行うときにコーディングしたのと同じ関数add_num()を呼び出している匿名ブロックです。
DECLARE var_result NUMBER; BEGIN var_result := add_num(var_1 => 10, 30 ,var_3 =>19); DBMS_OUTPUT.put_line('Result ->' || var_result); END;
これが、PL/SQLサブルーチンの呼び出しに混合呼び出し表記を使用する方法です。
自分で試してみてください
上記の概念の知識を使用して、次の質問を解決してみてください。
2つの数値を交換するためのパラメータを使用してPL/SQL関数を記述し、混合呼び出し表記を使用してその関数を呼び出します。
あなたのコードまたはあなたのコードのスナップショットを私のソーシャルメディア[Twitter//Facebook]で私と共有することができます。
あなたが読書を楽しんだことを願っています。このブログを高く評価して共有してください。ありがとう、そして素晴らしい一日を。