CREATE PACKAGEとは、パッケージ仕様部を作成するSQL文である。

スポンサーリンク

?ソスp?ソスb?ソスP?ソス[?ソスW?ソスd?ソスl?ソス?ソス?ソスナ宣言?ソス?ソス?ソス?ソス?ソスT?ソスu?ソスv?ソス?ソス?ソスO?ソス?ソス?ソス?ソス?ソス?ソス?ソスマ撰ソス?ソスA?ソス關費ソスネどはグ?ソス?ソス?ソス[?ソスo?ソス?ソス?ソスニなゑソス?ソスA?ソスp?ソスb?ソスP?ソス[?ソスW?ソスO?ソス?ソス?ソス?ソス?ソスQ?ソスニゑソス?ソス驍ア?ソスニゑソス?ソスナゑソス?ソス?ソス?ソスB

?ソスp?ソスb?ソスP?ソス[?ソスW?ソスd?ソスl?ソス?ソス?ソスナプ?ソス?ソス?ソスV?ソス[?ソスW?ソス?ソス?ソスy?ソスムフ?ソス@?ソス?ソス?ソスN?ソスV?ソス?ソス?ソス?ソス?ソス?ソス?ソス骭セ?ソス?ソス?ソス?ソス?ソス鼾??ソスA?ソスv?ソス?ソス?ソスV?ソス[?ソスW?ソス?ソス?ソス?ソス?ソスt?ソス@?ソス?ソス?ソスN?ソスV?ソス?ソス?ソス?ソス?ソスフ会ソス?ソス?ソス?ソス?ソス?ソスi?ソス?ソス?ソス?ソス?ソス?ソス?ソスA?ソスf?ソス[?ソス^?ソス^?ソスA?ソス?ソス?ソス?ソス?ソスフ撰ソス?ソスj?ソス?ソス?ソスp?ソスb?ソスP?ソス[?ソスW?ソス{?ソスフと茨ソス?ソスv?ソス?ソス?ソスネゑソス?ソス?ソス?ソスホなゑソス?ソスネゑソス?ソスiC?ソス?ソス?ソス?ソス?ソスニ異なゑソス?ソスA?ソス?ソス?ソス?ソス?ソス?ソス?ソスワで茨ソス?ソスv?ソス?ソス?ソス?ソス?ソス?ソス?ソスK?ソスv?ソス?ソス?ソス?ソス?ソス?ソス?ソスj?ソスB?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソスp?ソスb?ソスP?ソス[?ソスW?ソス{?ソスフと違う?ソス鼾??ソスA?ソスR?ソス?ソス?ソスp?ソスC?ソス?ソス?ソスフ際にエ?ソス?ソス?ソス[?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソス?ソスB

CREATE PACKAGE my_package IS
    PROCEDURE put_log (level IN NUMBER, message IN VARCHAR2);
END;
/
CREATE PACKAGE BODY my_package IS
    PROCUDURE put_log (
        level IN NUMBER,    -- ?ソスf?ソス[?ソス^?ソス^?ソス?ソス?ソス?ソス?ソスナなゑソス?ソス?ソス?ソス?ソス?ソスフ厄ソス?ソスO?ソスワゑソス
        message IN VARCHAR2 -- ?ソスp?ソスb?ソスP?ソス[?ソスW?ソスd?ソスl?ソス?ソス?ソスニ茨ソス?ソスv?ソス?ソス?ソス?ソス?ソスK?ソスv?ソス?ソス?ソス?ソス?ソス?ソス
    ) IS
        -- ?ソスv?ソス?ソス?ソスV?ソス[?ソスW?ソス?ソス?ソスフ擾ソス?ソス?ソス
    END put_log;
END my_package;
/

「警告: パッケージが作成されましたが、コンパイル・エラーがあります。」と表示された場合は、SQL*PlusSHOW ERRORSコマンドを実行すると、コンパイル・エラーの内容が表示される。

構文

CREATE [OR REPLACE] PACKAGE [schema.]package [AUTHID {CURRENT_USER|DEFINER}] {IS|AS}
  spec ...
END [package];
schema

パッケージを作成するスキーマの名前を指定する。自分のスキーマにパッケージを作成する場合は、スキーマ名の指定を省略できる。

package

作成するパッケージの名前を指定する。END句のパッケージ名は省略できる。

AUTHID CURRENT_USER

パッケージを実行したユーザの権限で動作させる。

AUTHID DEFINER

パッケージを作成したユーザの権限で動作させる。

spec

パッケージ仕様を記述する。

プロシージャ及びファンクションの定義

プロシージャ

PROCEDURE name([param [,param...]]);

ファンクション

FUNCTION name([param [,param...]]) RETURN type;
name

プロシージャまたはファンクションの名前を指定する。

type

ファンクションの戻り値のデータ型を指定する。

param

引数を次の構文で指定する。

var {IN|OUT|IN OUT} type [DEFAULT expr]
var

引数の名前を指定する。

IN

入力パラメータ

OUT

出力パラメータ

IN OUT

入出力パラメータ

type

引数のデータ型を指定する。

expr

入力パラメータのデフォルト値を指定する。

権限

自分のスキーマにパッケージ仕様部を作成するには、CREATE PROCEDUREシステム権限が必要である。任意のスキーマにパッケージ仕様部を作成するには、CREATE ANY PROCEDUREシステム権限が必要である。

パッケージ仕様部を作成する例を次に示す。

CREATE OR REPLACE PACKAGE emp_utl IS

  PROCEDURE set_ename(
    empno IN NUMBER,
    ename IN VARCHAR
  );

  FUNCTION get_ename(empno IN NUMBER) RETURN VARCHAR;

END;
スポンサーリンク