13.34 ファンクションの宣言および定義
ファンクションは、起動する前に定義および宣言する必要があります。最初に宣言して(function_declarationを使用)、後で同じブロック、サブプログラムまたはパッケージ内で定義する(function_declarationを使用)か、または宣言と定義を同時に行う(function_declarationを使用)ことができます。
ファンクションとは、値を戻すサブプログラムのことです。値のデータ型は、ファンクションのデータ型になります。ファンクションの起動(コール)は式の一部で、そのデータ型はファンクションのデータ型です。
ファンクション宣言は、ファンクション仕様部とも呼ばれます。
注意:
このトピックの内容は、ネストされたファンクションに適用されます。
スタンドアロン・ファンクションの詳細は、「CREATE FUNCTION文」を参照してください。
パッケージ・ファンクションの詳細は、「CREATE PACKAGE文」を参照してください。
ここでのトピック
構文
function_declaration ::=
function_definition ::=
参照:
セマンティクス
function_declaration
ファンクションを宣言しますが、定義はしません。定義は、同じブロック、サブプログラムまたはパッケージ内に後で宣言として存在している必要があります。
function_heading
ファンクションのヘッダーは、ファンクション名とそのパラメータ・リストを指定します。
function_name
宣言または定義するファンクションの名前。
RETURN datatype
ファンクションが返す値のデータ型を指定します。任意のPL/SQLデータ型を指定できます(「PL/SQLデータ型」を参照)。
datatypeの制限
このデータ型は、NOT
NULL
などでは制約することができません。datatype
が制約付きサブタイプの場合、戻された値はサブタイプの制約を継承しません(詳細は、「制約付きサブタイプの仮パラメータ」を参照)。
function_definition
すでに宣言済のファンクションを定義するか、またはファンクションの宣言と定義の両方を行います。
declare_section
ファンクションに対してローカルであり、body
で参照でき、ファンクションが実行を完了すると消滅する項目を宣言します。
body
ファンクションの必須の実行部およびオプションの例外処理部。実行部には、RETURN
文へ導く1つ以上の実行パスが必要であり、実行パスがないと、ランタイム・エラーが発生します。
例
-
例8-2、単純なPL/SQLファンクションの宣言、定義および起動
関連トピック