Oracle Database パッケージを作成する
- 作成日 2023.01.12
- 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;
実行結果をみると計算結果が取得されていることが確認できます。
-
前の記事
java 日付を比較する 2023.01.12
-
次の記事
sqlite 最大値を取得する 2023.01.12
コメントを書く