PLではパッケージ内のプログラムをオーバーロードできます。オーバーロードとは、2つ以上のプログラムが同じ名前を持ちながら、引数変数、引数の順序、または引数のデータ型が異なる場合を指します。呼び出し時には、渡された引数の型に基づいて適切なプログラムが選択されます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
以下はパッケージヘッダーの例です。パラメータを数値型または文字列型で渡すことで、関数query_obdeptの使用方法を決定します。その後、パッケージ本体の定義でそれぞれの機能を実装することができます。
CREATE OR REPLACE PACKAGE obdemo_pack1
IS
DeptRec obdept%ROWTYPE;
v_sqlcode NUMBER;
v_sqlerr VARCHAR2(2048);
FUNCTION query_obdept(dept_no IN NUMBER)
RETURN INTEGER;
FUNCTION query_obdept(dept_no IN VARCHAR2)
RETURN INTEGER;
END obdemo_pack1;
/