プロが教える店舗&オフィスのセキュリティ対策術

業務用に10個以上作成したストアドプロシージャ/ファンクションをパッケージとしてまとめようとしています。保守性の観点から、PACKAGE BODY内の各ストアドを、以下のようなイメージで別々のファイルで管理したいと思っています。
が、PACKAGEとBODYの分割はできたものの、BODY内のストアドを別々にすると、エラーとなってしまいます。
そういうことはできないのでしょうか?


[xxx_pkg.SQL]
CREATE OR REPLACE PACKAGE xxx_pkg IS
PROCEDURE procedure_a;
PROCEDURE procedure_b;
PROCEDURE procedure_c;
END xxx_pkg;

[xxx_pkg.procedure_a.SQL]
PROCEDURE procedure_a IS
-- aの処理
END procedure_a;

[xxx_pkg.procedure_b.SQL]
PROCEDURE procedure_b IS
-- aの処理
END procedure_a;

[xxx_pkg.procedure_c.SQL]
PROCEDURE procedure_c IS
-- aの処理
END procedure_c;

A 回答 (1件)

こんにちわ。



> PACKAGEとBODYの分割はできたものの、BODY内のストアドを別々にすると、
> エラーとなってしまいます。
Package Body のStored Procedure は1つのスクリプト内で定義して下さい。
こんな感じです。

Create or replace Package pkg_xxxx as
procedure proc_A;
procedure proc_B;
procedure proc_C;
end pkg_xxxx;
/
show error

Create or replace package body pkg_xxxx as
procedure proc_A is
begin
Proc_A の中身
end proc_A;

procedure proc_B is
begin
Proc_B の中身
end proc_B;

procedure proc_C is
begin
Proc_C の中身
end proc_C;
end pkg_xxxx;
/
show errors
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す