PL/SQL パッケージ内の PL/SQL ユーザー定義関数の作成

「新規 PL/SQL パッケージ」ウィザードを使用して、PL/SQL パッケージ内に PL/SQL ユーザー定義関数を作成できます。

手順

PL/SQL ユーザー定義関数をデータ開発プロジェクトから作成するには、以下のようにします。

  1. データ・プロジェクト・エクスプローラーで、「PL/SQL パッケージ」フォルダー・スキーマを右クリックして、「新規」 > 「PL/SQL パッケージ」をクリックします。 「新規 PL/SQL パッケージ」ウィザードが開きます。
  2. ウィザードのステップを完了します。

    このウィザードは、PL/SQL パッケージを作成して、それを「PL/SQL パッケージ」フォルダーに追加します。PL/SQL パッケージの仕様がルーチン・エディターで開きます。

  3. 仕様に関数の名前および変数を追加します。例:
    CREATE OR REPLACE PACKAGE emp_admin
    IS
    
       ...
       FUNCTION SampleFunction RETURN integer;
       ...
    END emp_admin;
  4. 「本体」タブをクリックして PL/SQL パッケージ本体を編集し、関数を追加します。 次に例を示します。
    --
    --  「emp_admin」パッケージのパッケージ本体。
    --
    CREATE OR REPLACE PACKAGE BODY emp_admin AS
       FUNCTION hire_emp (name VARCHAR2, job VARCHAR2,
          mgr NUMBER, hiredate DATE, sal NUMBER, comm NUMBER,
          deptno NUMBER) RETURN NUMBER IS
    END;
  5. パッケージを保存します。

タスクの結果

デフォルトでは、パッケージを作成しても、データベースにそのパッケージは登録されません。データベースにパッケージを登録するには、そのパッケージをデプロイする必要があります。

PL/SQL UDF の多重定義は、同じ名前とタイプのすべてのルーチンが同じ PL/SQL パッケージ内にあるときに限って可能です。 PL/SQL パッケージ内では、プロシージャーまたは関数を、タイプと名前は同じだがパラメーターの数が異なるプロシージャーまたは関数で多重定義することができます。 パッケージに含まれている関数を、パラメーター数が同じ別の関数で多重定義することも可能です (ただし、いずれかのパラメーターのデータ・タイプが異なっていることが条件です)。 PL/SQL パッケージ内の多重定義されたプロシージャーまたは関数では、パラメーターの数が括弧内に表示されます。
For procedure, the engine just validate the parameter number and procedure name, does not care parameter data type whatever it is IN, IN OUT and OUT.

For function, the engine validate both the parameters data type, number and function name. 
Function(1)
Function(2)

PL/SQL パッケージを作成したら、パッケージをデプロイして実行できます。


フィードバック