DECLARE <refpurpose>define a cursor</refpurpose> — カーソルを定義します。
DECLAREcursor_name
[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORprepared_name
DECLAREcursor_name
[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORquery
<command>DECLARE</command> declares a cursor for iterating over
the result set of a prepared statement. This command has
slightly different semantics from the direct SQL
command <command>DECLARE</command>: Whereas the latter executes a
query and prepares the result set for retrieval, this embedded
SQL command merely declares a name as a <quote>loop
variable</quote> for iterating over the result set of a query;
the actual execution happens when the cursor is opened with
the <command>OPEN</command> command.
DECLARE
は、プリペアド文の結果セット全体を繰り返し処理するカーソルを宣言します。
このコマンドは直接的なDECLARE
SQLコマンドとは多少異なる意味を持ちます。
こちらは問い合わせを実行し、取り出し用の結果セットの準備を行いますが、埋め込みSQLコマンドでは、問い合わせの結果セット全体を繰り返す「ループ変数」の名前を宣言するだけです。
実際の実行はOPEN
コマンドでカーソルが開いた時に起こります。
cursor_name
#A cursor name, case sensitive. This can be an SQL identifier or a host variable. カーソル名です。 大文字小文字を区別します。 これはSQL識別子またはホスト変数とすることができます。
prepared_name
#The name of a prepared query, either as an SQL identifier or a host variable. プリペアド問い合わせの名前です。 SQL識別子またはホスト変数のいずれかです。
query
#A <xref linkend="sql-select"/> or <xref linkend="sql-values"/> command which will provide the rows to be returned by the cursor. このカーソルで返される行を供給するSELECTまたはVALUESコマンドです。
For the meaning of the cursor options, see <xref linkend="sql-declare"/>. カーソルオプションの意味についてはDECLAREを参照してください。
Examples declaring a cursor for a query: 以下に問い合わせ用のカーソルを宣言する例を示します。
EXEC SQL DECLARE C CURSOR FOR SELECT * FROM My_Table; EXEC SQL DECLARE C CURSOR FOR SELECT Item1 FROM T; EXEC SQL DECLARE cur1 CURSOR FOR SELECT version();
An example declaring a cursor for a prepared statement: プリペアド文用のカーソルを宣言する例を示します。
EXEC SQL PREPARE stmt1 AS SELECT version(); EXEC SQL DECLARE cur1 CURSOR FOR stmt1;
<command>DECLARE</command> is specified in the SQL standard.
DECLARE
は標準SQLで規定されています。