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を指定した場合、エラーは以前のエラーをすべて置換する。