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

ストアドファンクションに関するSQL文

ストアドファンクションを操作するSQL文を次に示す。

ストアドファンクションに関するSQL文
SQL文 説明
CREATE FUNCTION ストアドファンクションを作成する。
ALTER FUNCTION ストアドファンクションを再コンパイルする。
DROP FUNCTION ストアドファンクションを削除する。

ファンクションに関するSQL*Plusコマンド

ファンクションに関する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 現在のユーザが所有するストアドオブジェクトのテキストソースを示す。

ファンクションの実行方法

ストアドファンクションを呼び出すには、SQL文のCALLを実行する方法と、SQL*PlusコマンドのEXECUTEを実行する方法がある。

また、SQL関数と同様にSQLから呼び出すこともできる。

SELECT func1() FROM DUAL;
SELECT func2(123) FROM DUAL;
SELECT func3(123, 'ABC') FROM DUAL;
スポンサーリンク