ストアド・プロシージャとは名前でコールできるPL/SQL文の集合である。ストアド・プロシージャはストアド・ファンクションと似ているが、コールした環境に値を戻さない点が異なる。
ストアド・プロシージャを呼び出すには、SQL文のCALLを実行する方法と、SQL*PlusコマンドのEXECUTEを実行する方法の2通りがある。
ストアド・プロシージャを操作するSQL文の一覧を以下に示す。
CALL は、プロシージャ又はファンクションを呼び出すSQL文である。
CREATE PROCEDURE は、ストアド・プロシージャを作成するSQL文である。
ALTER PROCEDURE は、ストアド・プロシージャを再コンパイルするSQL文である。
DROP PROCEDURE は、ストアド・プロシージャを削除するSQL文である。
ストアド・プロシージャに関するSQL*Plusコマンドの一覧を以下に示す。
DESCRIBE は、プロシージャの定義を表示するSQL*Plusコマンドである。
EXECUTE は、PL/SQL文を実行するSQL*Plusコマンドである。
ストアド・プロシージャを操作するために必要なシステム権限の一覧を以下に示す。
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 は、現在のユーザが所有するストアド・オブジェクトのテキストソースを示すデータ・ディクショナリ・ビューである。