- 締切済み
Oracle: PACKAGE BODY の分割
業務用に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;
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- muyoshid
- ベストアンサー率72% (230/318)
こんにちわ。 > 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