機能
PREPARE文によって用意された文に基づいて、カーソルを定義します。
記述形式
参照項番
SCROLL → “3.26 DECLARE CURSOR(カーソル宣言)”
日本語文字列 → “2.1.3 トークン”
一般規則
同じSQL文識別子を指定したPREPARE文によって用意された文は、動的SELECT文であることが必要です。
使用例
被準備文が動的SELECT文の場合、カーソル宣言における問合せ式の部分にSQL文識別子を指定します。なお、可変長文字型の展開規則は、“6.3 SQL埋込みCプログラム”を参照してください。
EXEC SQL BEGIN DECLARE SECTION; VARCHAR CMDAREA[100]; EXEC SQL END DECLARE SECTION; : EXEC SQL DECLARE CU1 CURSOR FOR CMD; (1) strcpy(CMDAREA.sqlvar,"SELECT COL1,COL2,COL3 FROM S1.TBL"); (2) CMDAREA.sqllen = strlen(CMDAREA.sqlvar); EXEC SQL PREPARE CMD FROM :CMDAREA; (3)
(1) カーソルCU1が、SQL文識別子CMDで指定された問合せ式によって定義されます。
(2) ホスト変数CMDAREAに動的SELECT文を設定します。
(3) ホスト変数CMDAREAが示す動的SELECT文をSQL文識別子CMDに対応づけます。
これは、次のSQL文と同じです。
EXEC SQL DECLARE CU1 CURSOR FOR SELECT COL1,COL2,COL3 FROM S1.TBL;