Oracle Database パッケージを作成する

Oracle Database パッケージを作成する

Oracle Databaseで、パッケージを作成する手順を記述してます。仕様部と本体部をそれぞれ作成する必要があります。実行結果は「SQL Developer」上で確認します。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

パッケージを作成するには、「CREATE PACKAGE」で仕様を作成して、「CREATE PACKAGE BODY」で本体を作成します。

仕様部

CREATE [OR REPLACE] PACKAGE パッケージ名 AS

  --ファンクション
  FUNCTION ファンクション名(引数 IN 型 [, ...]) RETURN 戻り値型;

  --プロシージャ
  PROCEDURE プロシージャ名(引数 IN 型 [, ...]);

END;
/

本体部

CREATE [OR REPLACE] PACKAGE BODY パッケージ名 AS

  --グローバル変数
    変数名 型;

  --ファンクションの場合
  FUNCTION ファンクション名(引数 IN 型 [, ...]) RETURN 戻り値型;
    IS
      宣言部
    BEGIN
      処理部
      RETURN 戻り値;
    EXCEPTION
      例外部
    END ファンクション名;

  --プロシージャの場合
  PROCEDURE プロシージャ名(引数 IN 型 [, ...]);
    IS
      宣言部
    BEGIN
      処理部
    EXCEPTION
      例外部
    END プロシージャ名;

END パッケージ名;
/

実際に、計算するだけのパッケージ「pkgtest」を作成してみます。

仕様部

CREATE OR REPLACE PACKAGE pkgtest AS
--ファンクション
FUNCTION calcfun (
  x IN NUMBER,
  y IN NUMBER
) RETURN NUMBER;

--プロシージャ
PROCEDURE calcpro (
  x IN NUMBER,
  y IN NUMBER
);

END;
/

本体部

-- 本体部
CREATE OR REPLACE PACKAGE BODY pkgtest AS
  --ファンクション
  FUNCTION calcfun(x IN NUMBER, y IN NUMBER) RETURN NUMBER
  IS
    z NUMBER;
  BEGIN
    z := x * y;
    RETURN z;
  END calcfun;

  --プロシージャ
  PROCEDURE calcpro(x IN NUMBER, y IN NUMBER)
  IS
    z NUMBER;
  BEGIN
    z := x + y;
  END calcpro;
  
END pkgtest;
/

実行してみます。

SELECT
  pkgtest.calcfun(2, 5)
FROM
  DUAL;

実行結果をみると計算結果が取得されていることが確認できます。