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通りがある。