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

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

目次

  1. プロシージャの実行方法
  2. SQL文
    1. CALL
    2. CREATE PROCEDURE
    3. ALTER PROCEDURE
    4. DROP PROCEDURE
  3. SQL*Plusコマンド
    1. DESCRIBE
    2. EXECUTE
  4. システム権限
    1. CREATE PRODECURE
    2. CREATE ANY PRODECURE
    3. ALTER ANY PRODECURE
    4. DROP ANY PRODECURE
  5. オブジェクト権限
    1. EXECUTE
  6. データ・ディクショナリ・ビュー
    1. ALL_ARGUMENTS
    2. ALL_PROCEDURES
    3. ALL_SOURCE
    4. DBA_ARGUMENTS
    5. DBA_PROCEDURES
    6. DBA_SOURCE
    7. USER_ARGUMENTS
    8. USER_PROCEDURES
    9. USER_SOURCE

プロシージャの実行方法

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

SQL文

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

CALL

CALL は、プロシージャ又はファンクションを呼び出すSQL文である。

CREATE PROCEDURE

CREATE PROCEDURE は、ストアド・プロシージャを作成するSQL文である。

ALTER PROCEDURE

ALTER PROCEDURE は、ストアド・プロシージャを再コンパイルするSQL文である。

DROP PROCEDURE

DROP PROCEDURE は、ストアド・プロシージャを削除するSQL文である。

SQL*Plusコマンド

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

DESCRIBE

DESCRIBE は、プロシージャの定義を表示するSQL*Plusコマンドである。

EXECUTE

EXECUTE は、PL/SQL文を実行するSQL*Plusコマンドである。

システム権限

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

CREATE PRODECURE

CREATE PRODECURE は、自分のスキーマにプロシージャ、ファンクション及びパッケージを作成できるシステム権限である。

CREATE ANY PRODECURE

CREATE ANY PRODECURE は、任意のスキーマにプロシージャ、ファンクション及びパッケージを作成できるシステム権限である。

ALTER ANY PRODECURE

ALTER ANY PRODECURE は、任意のスキーマのプロシージャ、ファンクション及びパッケージを変更できるシステム権限である。

DROP ANY PRODECURE

DROP ANY PRODECURE は、任意のスキーマのプロシージャ、ファンクション及びパッケージを削除できるシステム権限である。

オブジェクト権限

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

EXECUTE

EXECUTE は、プロシージャを実行できるオブジェクト権限である。

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

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

ALL_ARGUMENTS

ALL_ARGUMENTS は、現在のユーザーがアクセスできるファンクション及びプロシージャ内の引数を示すデータ・ディクショナリ・ビューである。

ALL_PROCEDURES

ALL_PROCEDURES は、現在のユーザがアクセスできるプロシージャ、ファンクション及びパッケージを示すデータ・ディクショナリ・ビューである。

ALL_SOURCE

ALL_SOURCE は、現在のユーザがアクセスできるストアド・オブジェクトのテキストソースを示すデータ・ディクショナリ・ビューである。

DBA_ARGUMENTS

DBA_ARGUMENTS は、データベースで使用可能なファンクション及びプロシージャの引数のリストを示すデータ・ディクショナリ・ビューである。

DBA_PROCEDURES

DBA_PROCEDURES は、すべてのプロシージャ、ファンクション及びパッケージを示すデータ・ディクショナリ・ビューである。

DBA_SOURCE

DBA_SOURCE は、すべてのストアドオブジェクトのテキストソースを示すデータ・ディクショナリ・ビューである。

USER_ARGUMENTS

USER_ARGUMENTS は、現在のユーザーが所有するファンクション及びプロシージャ内の引数を示すデータ・ディクショナリ・ビューである。

USER_PROCEDURES

USER_PROCEDURES は、現在のユーザが所有するプロシージャ、ファンクション及びパッケージを示すデータ・ディクショナリ・ビューである。

USER_SOURCE

USER_SOURCE は、現在のユーザが所有するストアド・オブジェクトのテキストソースを示すデータ・ディクショナリ・ビューである。