PolarDB for Oracle でパッケージ仕様を作成します。
構文
CREATE [ OR REPLACE ] PACKAGE name
[ AUTHID { DEFINER | CURRENT_USER } ]
{ IS | AS }
[ declaration; ] [, ...]
[ { PROCEDURE proc_name
[ (argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ]
[, ...]) ];
[ PRAGMA RESTRICT_REFERENCES(name,
{ RNDS | RNPS | TRUST | WNDS | WNPS } [, ... ] ); ]
|
FUNCTION func_name
[ (argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ]
[, ...]) ]
RETURN rettype [ DETERMINISTIC ];
[ PRAGMA RESTRICT_REFERENCES(name,
{ RNDS | RNPS | TRUST | WNDS | WNPS } [, ... ] ); ]
}
] [, ...]
END [ name ]説明
CREATE PACKAGE はパッケージ仕様を作成します。CREATE OR REPLACE PACKAGE は新しいパッケージ仕様を作成するか、既存のパッケージ仕様を置き換えます。
スキーマ名を指定すると、パッケージはそのスキーマ内に作成されます。指定しない場合、現在のスキーマ内に作成されます。新しいパッケージ名は、そのスキーマ内で一意である必要があります。既存のパッケージ定義を更新するには、CREATE OR REPLACE PACKAGE を使用します。
パッケージを作成するユーザーがその所有者となります。
パラメーター
name
作成するパッケージの名前です。名前はスキーマ修飾できます。
DEFINER | CURRENT_USER
パッケージ内で参照されるデータベースオブジェクトへのアクセスを決定するために使用される権限を指定します。DEFINER はパッケージ所有者の権限を使用します。CURRENT_USER はパッケージ内のプログラムを実行するユーザーの権限を使用します。デフォルトは DEFINER です。
declaration
パブリック変数、型、カーソル、または REF CURSOR の宣言。
proc_name
パブリックストアドプロシージャの名前。
argname
引数の名前。
IN | IN OUT | OUT
引数モード。
argtype
引数のデータ型。
DEFAULT value
入力引数のデフォルト値。
func_name
パブリック関数の名前。
rettype
戻りデータ型。
DETERMINISTIC
IMMUTABLE のシノニムです。DETERMINISTIC ストアドプロシージャは、データベースを変更できず、常に同じ引数値に対して同じ結果を返します。データベースルックアップを実行したり、引数リスト外の情報を使用したりしません。すべての引数が定数の場合、呼び出しはストアドプロシージャの戻り値に即座に置き換えられます。
RNDS | RNPS | TRUST | WNDS | WNPS
Oracle互換性のために受け入れられます。これらのキーワードは無視されます。
例
次のパッケージ仕様 (empinfo) は、3つのパブリックコンポーネント (変数、ストアドプロシージャ、関数) を宣言しています。
CREATE OR REPLACE PACKAGE empinfo
IS
emp_name VARCHAR2(10);
PROCEDURE get_name (
p_empno NUMBER
);
FUNCTION display_counter
RETURN INTEGER;
END;関連項目
CREATE PACKAGE BODY: パッケージ仕様で宣言されたストアドプロシージャおよび関数を実装します。
DROP PACKAGE:既存のパッケージ仕様とその本文を削除します。