すべてのプロダクト
Search
ドキュメントセンター

PolarDB:CREATE PACKAGE

最終更新日:Mar 29, 2026

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:既存のパッケージ仕様とその本文を削除します。