Oracleデータベースのストアド・パッケージ
Oracleデータベースのパッケージとは、関連するプロシージャ、ファンクション、変数、定数、カーソル及び例外をまとめたものであり、データベースに格納される。
パッケージには、Oracleデータベースにあらかじめ用意されているパッケージと、ユーザがPL/SQLで独自に作るパッケージがある。
Oracleデータベースにあらかじめ用意されているパッケージ
Oracleデータベースには、あらかじめ次のストアド・パッケージが用意されている。
- DBMS_ALERT
- データベース・イベント(アラート)の非同期通知を提供する。
- DBMS_LOCK
- Oracleロック・マネージメント・サービスへのインタフェースを提供する。
- DBMS_OUTPUT
- PL/SQLブロックやサブプログラムからのメッセージ出力を提供する。
- DBMS_PIPE
- 同じインスタンスにある複数のセッションの通信を提供する。
- DBMS_STANDARD
- 各種のユーティリティ・サブプログラムを提供する。
- DBMS_STATS
- データベース・オブジェクト用に収集したオプティマイザの統計情報を表示・変更する。
- DBMS_XPLAN
- PLANで出力した実行計画を読み書きする。
- UTL_FILE
- SQLプログラムでOSのテキストファイルを読み書きする。
SQL文
ストアド・パッケージを操作するSQL文の一覧を次に示す。
- CALL
- パッケージに含まれるプロシージャ又はファンクションを実行する。
- CREATE PACKAGE
- パッケージ仕様部を作成する。
- CREATE PACKAGE BODY
- パッケージ本体を作成する。
- ALTER PACKAGE
- パッケージを明示的に再コンパイルする。
- DROP PACKAGE
- パッケージ仕様部を削除する。
- DROP PACKAGE BODY
- パッケージ本体を削除する。
SQL*Plusコマンド
ストアド・パッケージに関するSQL*Plusコマンドを次に示す。
- DESCRIBE
- パッケージに含まれるプロシージャ及びファンクションの定義を表示する。
システム権限
ストアド・パッケージを操作するために必要なシステム権限の一覧を次に示す。
- CREATE PRODECURE
- 自分のスキーマにプロシージャ、ファンクション及びパッケージを作成する。
- CREATE ANY PRODECURE
- 任意のスキーマにプロシージャ、ファンクション及びパッケージを作成する。
- ALTER ANY PRODECURE
- 任意のスキーマのプロシージャ、ファンクション及びパッケージを変更する。
- DROP ANY PRODECURE
- 任意のスキーマのプロシージャ、ファンクション及びパッケージを削除する。
パッケージに関するデータ・ディクショナリ
ストアド・パッケージに関するデータ・ディクショナリ・ビューの一覧を次に示す。
- ALL_PROCEDURES
- 現在のユーザがアクセスできるプロシージャ、ファンクション及びパッケージを示す。
- ALL_SOURCE
- 現在のユーザがアクセスできるストアドオブジェクトのテキストソースを示す。
- DBA_PROCEDURES
- すべてのプロシージャ、ファンクション及びパッケージを示す。
- DBA_SOURCE
- すべてのストアドオブジェクトのテキストソースを示す。
- USER_PROCEDURES
- 現在のユーザが所有するプロシージャ、ファンクション及びパッケージを示す。
- USER_SOURCE
- 現在のユーザが所有するストアドオブジェクトのテキストソースを示す。
DBMS_STANDARD
DBMS_STANDARDとは、PL/SQLの標準パッケージである。PL/SQLからDBMS_STANDARDパッケージを呼び出す場合、パッケージ名の指定を省略できる。
DBMS_STANDARDのプロシージャ
プロシージャ |
説明 |
RAISE_APPLICATION_ERROR |
ユーザ独自のエラーメッセージ(ORA-n)を発生させる。 |
RAISE_APPLICATION_ERROR
RAISE_APPLICATION_ERRORは、ユーザ独自のエラーメッセージ(ORA-n)を発生させるプロシージャである。
RAISE_APPLICATION_ERROR(error_number, message)
RAISE_APPLICATION_ERROR(error_number, message, add_stack)
- error_number
- エラー番号を-20000から-20999の範囲で指定する。
- message
- エラーメッセージを指定する。
- add_stack
- TRUEを指定した場合、エラーは以前のスタックに配置される。FALSEを指定した場合、エラーは以前のエラーをすべて置換する。