13.46 OPEN FOR文
OPEN
FOR
文は、カーソル変数を問合せに関連付け、問合せを処理するデータベース・リソースを割り当て、結果セットを識別して、カーソルを結果セットの最初の行の前に配置します。
問合せにFOR
UPDATE
句がある場合、結果セットの行はOPEN
FOR
文によってロックされます。
ここでのトピック
構文
open_for_statement ::=
using_clause ::=
セマンティクス
open_for_statement
cursor_variable
カーソル変数の名前。cursor_variable
がサブプログラムの仮パラメータの場合、戻り型は指定しないでください。サブプログラム・パラメータとしてのカーソル変数の詳細は、「サブプログラム・パラメータとしてのカーソル変数」を参照してください。
:host_cursor_variable
PL/SQLホスト環境で宣言され、バインド変数としてPL/SQLに渡されるカーソル変数の名前。コロン(:)とhost_cursor_variable
の間に空白は入れないでください。
ホスト・カーソル変数のデータ型は、PL/SQLカーソル変数の戻り型と互換性があります。
select_statement
SQLのSELECT
文(PL/SQLのSELECT
INTO
文ではない)。通常、select_statement
は複数の行を戻します。
参照:
SELECT
文の構文は、『Oracle Database SQL言語リファレンス』を参照してください。
dynamic_string
データ型がCHAR
、VARCHAR2
またはCLOB
で、SQLのSELECT
文を表す文字列リテラル、文字列変数または文字列式。通常、dynamic_statement
は複数の行を戻すSQLのSELECT
文を表します。
using_clause
位置表記法を使用して、バインド変数を指定します。
注意:
dynamic_sql_statement
内でプレースホルダ名を繰り返す場合は、プレースホルダをバインド変数に関連付ける方法が動的SQL文の種類によって異なるということに注意してください。詳細は、「動的SQL文内でのプレースホルダ名の繰返し」を参照してください。
using_clauseの制限
select_statement
またはdynamic_sql_stmt
にバインド変数のためのプレースホルダがある場合にのみ使用します。
IN、OUT、IN OUT
バインド変数のパラメータ・モード。IN
バインド変数は、その値をselect_statement
またはdynamic_string
に渡します。OUT
バインド変数は、dynamic_string
によって戻される値を格納します。IN
OUT
バインド変数は、その初期値をdynamic_string
に渡し、dynamic_string
によって戻される値を格納します。デフォルト: IN
。
bind_argument
実行時に、select_statement
またはdynamic_string
に含まれる対応するプレースホルダを置換する値を持つ式。すべてのプレースホルダにbind_argument
を指定する必要があります。
注意:
バインド変数はどのような順序でも評価できます。プログラムにより評価の順序が決定される場合は、プログラムで決定が行われる時点で動作は定義されません。
bind_argumentの制限
-
bind_argument
に、文字列で索引付けされている連想配列は使用できません。 -
bind_argument
に、予約語NULL
は使用できません。値
NULL
を動的SQL文に渡すには、例7-7で示すように、NULL
を使用する場所に未初期化変数を使用します。
例
関連トピック
この章:
他の章: