PL/SQL パッケージ内のストアード・プロシージャーの作成

「新規 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
    
       ...
       PROCEDURE hire_emp (
          p_empno         NUMBER,
          p_ename         VARCHAR2,
          p_job           VARCHAR2,
          p_sal           NUMBER,
          p_hiredate      DATE DEFAULT sysdate,
          p_comm          NUMBER DEFAULT 0,
          p_mgr           NUMBER,
          p_deptno        NUMBER DEFAULT 10
       );
       ...
    END emp_admin;
  4. 「本体」タブをクリックして PL/SQL パッケージ本体を編集し、ストアード・プロシージャーを追加します。 次に例を示します。
    --
    --  「emp_admin」パッケージのパッケージ本体。
    --
    CREATE OR REPLACE PACKAGE BODY emp_admin
    IS
       --
       ...
       --  新規従業員レコードを「emp」表に挿入するプロシージャー
       --
       PROCEDURE hire_emp (
          p_empno         NUMBER,
          p_ename         VARCHAR2,
          p_job           VARCHAR2,
          p_sal           NUMBER,
          p_hiredate      DATE    DEFAULT sysdate,
          p_comm          NUMBER  DEFAULT 0,
          p_mgr           NUMBER,
          p_deptno        NUMBER  DEFAULT 10
       )
       AS
       BEGIN
          INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
             VALUES(p_empno, p_ename, p_job, p_sal,
                    p_hiredate, p_comm, p_mgr, p_deptno);
       END;
    	 ...
       --
       END;
  5. パッケージを保存します。
    PL/SQL ストアード・プロシージャーの多重定義は、同じ名前とタイプのすべてのルーチンが同じ PL/SQL パッケージ内にあるときに限って可能です。 PL/SQL パッケージ内では、プロシージャーまたは関数を、タイプと名前は同じだがパラメーターの数が異なるプロシージャーまたは関数で多重定義することができます。 パッケージに含まれている関数を、パラメーター数が同じ別の関数で多重定義することも可能です (ただし、いずれかのパラメーターのデータ・タイプが異なっていることが条件です)。 PL/SQL パッケージ内の、多重定義されたパッケージまたは関数では、パラメーターの数が括弧内に表示されます。
    Procedure02(1)
    Procedure02(2)

フィードバック