13.34 ファンクションの宣言および定義

ファンクションは、起動する前に定義および宣言する必要があります。最初に宣言して(function_declarationを使用)、後で同じブロック、サブプログラムまたはパッケージ内で定義する(function_declarationを使用)か、または宣言と定義を同時に行う(function_declarationを使用)ことができます。

ファンクションとは、値を戻すサブプログラムのことです。値のデータ型は、ファンクションのデータ型になります。ファンクションの起動(コール)は式の一部で、そのデータ型はファンクションのデータ型です。

ファンクション宣言は、ファンクション仕様部とも呼ばれます。

注意:

このトピックの内容は、ネストされたファンクションに適用されます。

スタンドアロン・ファンクションの詳細は、「CREATE FUNCTION文」を参照してください。

パッケージ・ファンクションの詳細は、「CREATE PACKAGE文」を参照してください。

ここでのトピック

構文

function_declaration ::=

セマンティクス

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ファンクションの宣言、定義および起動