Oracleデータベースのストアド・プロシージャ

ストアド・プロシージャとは名前でコールできるPL/SQL文の集合である。ストアド・プロシージャはストアド・ファンクションと似ているが、コールした環境に値を戻さない点が異なる。

SQL文

ストアド・プロシージャを操作するSQL文の一覧を次に示す。

CALL
プロシージャ又はファンクションを呼び出す。
CREATE PROCEDURE
ストアド・プロシージャを作成する。
ALTER PROCEDURE
ストアド・プロシージャを再コンパイルする。
DROP PROCEDURE
ストアド・プロシージャを削除する。

SQL*Plusコマンド

ストアド・プロシージャに関するSQL*Plusコマンドの一覧を示す。

DESCRIBE
プロシージャの定義を表示する。
EXECUTE
PL/SQL文を実行する。

システム権限

ストアド・プロシージャを操作するために必要なシステム権限の一覧を次に示す。

CREATE PRODECURE
自分のスキーマにプロシージャ、ファンクション及びパッケージを作成できる。
CREATE ANY PRODECURE
任意のスキーマにプロシージャ、ファンクション及びパッケージを作成できる。
ALTER ANY PRODECURE
任意のスキーマのプロシージャ、ファンクション及びパッケージを変更できる。
DROP ANY PRODECURE
任意のスキーマのプロシージャ、ファンクション及びパッケージを削除できる。

オブジェクト権限

ストアド・プロシージャを操作するために必要なオブジェクト権限の一覧を次に示す。

EXECUTE
プロシージャを実行できる。

データ・ディクショナリ・ビュー

ストアド・プロシージャのスキーマ定義などを格納したデータ・ディクショナリ・ビューの一覧を次に示す。

ALL_ARGUMENTS
現在のユーザーがアクセスできるファンクション及びプロシージャ内の引数
ALL_PROCEDURES
現在のユーザがアクセスできるプロシージャ、ファンクション及びパッケージを示す。
ALL_SOURCE
現在のユーザがアクセスできるストアド・オブジェクトのテキストソースを示す。
DBA_ARGUMENTS
データベースで使用可能なファンクション及びプロシージャの引数のリスト
DBA_PROCEDURES
すべてのプロシージャ、ファンクション及びパッケージを示す。
DBA_SOURCE
すべてのストアドオブジェクトのテキストソースを示す。
USER_ARGUMENTS
現在のユーザーが所有するファンクション及びプロシージャ内の引数
USER_PROCEDURES
現在のユーザが所有するプロシージャ、ファンクション及びパッケージを示す。
USER_SOURCE
現在のユーザが所有するストアド・オブジェクトのテキストソースを示す。

プロシージャの実行方法

ストアド・プロシージャを呼び出すには、SQL文のCALLを実行する方法と、SQL*PlusコマンドのEXECUTEを実行する方法の2通りがある。