パラメータ宣言は、次の場所で使用できます。
構文
parameter_declaration ::=
キーワードとパラメータの説明
datatype
宣言するパラメータのデータ型。 このデータ型は、NOT
NULL
などでは制約することができません。
IN、OUT、IN OUT
仮パラメータのアクションを定義するパラメータ・モード。 パラメータ・モードの概要は、表8-1を参照してください。
注意: ファンクションでは、OUT およびIN OUT を使用しないでください。 ファンクションの目的は、0(ゼロ)個以上のパラメータを取り、単一の値を戻すことです。 サブプログラム専用ではない変数の値を変更するという副作用も避ける必要があります。 |
NOCOPY
NOCOPY
を指定すると、可能なかぎりすぐにこの引数を渡すようにデータベースに指示できます。 この句によって、レコード、索引付き表、VARRAYなどの大きい値をOUT
またはIN
OUT
パラメータに渡す場合にパフォーマンスを大幅に向上させることができます。 IN
パラメータ値は、常にNOCOPY
に渡されます。
NOCOPY
を指定した場合、パッケージ変数がこのパラメータに対応する実際の代入として渡されると、パッケージ変数に対して行われた代入がこのパラメータにすぐに表示されるか、またはこのパラメータに対して行われた代入がパッケージ変数にすぐに表示されます。
同様に、両方に同じ変数が渡されると、このパラメータまたは別のパラメータに対して行われた変更がすぐに表示されます。
サブプログラムが未処理例外を戻して終了した場合は、このパラメータに対して行われた代入がコール元の変数に表示されます。
このような効果がないコールもあります。 NOCOPY
は、このような効果が発生しても問題がない場合にのみ使用します。
parameter_name
宣言する仮パラメータの名前。この名前は、サブプログラムの本体で参照できます。
{ := | DEFAULT } expression
IN
パラメータのデフォルト値を指定します。 サブプログラムの実行者がパラメータの値を指定した場合、その起動のexpression
は評価されません(例8-7を参照)。 これ以外の場合、パラメータは、expression
の値に初期化されます。 その値とパラメータのデータ型には互換性が必要です。
例
関連トピック