プライマリ・コンテンツに移動
Pro*C/C++プログラマーズ・ガイド
12c リリース1(12.1)
B71397-03
目次へ移動
目次
索引へ移動
索引

前
次

DECLARE CURSOR(埋込みSQLディレクティブ)

用途

カーソルを宣言するためにカーソルに名前を付け、それをSQL文またはPL/SQLブロックに対応付けます。

前提条件

SQL文またはPL/SQLブロックの識別子を使用してカーソルを対応付けるには、DECLARE STATEMENT文を使用してこの識別子を事前に宣言する必要があります。

構文

キーワードおよびパラメータ

キーワードおよびパラメータ 説明

AT

カーソルを宣言するデータベースを指定します。次のいずれかを使用してデータベースを指定します。

db_name

DECLARE DATABASE文を使用してすでに宣言されているデータベース識別子。

host_variable

すでに宣言されているdb_name値のホスト変数。

この句を省略した場合、Oracleはデフォルトのデータベースに対してこのカーソルを宣言します。

cursor

宣言するカーソルの名前。

WITH HOLD

カーソルはCOMMITの実行後もオープン状態のままです。UPDATEの場合は、カーソルを宣言しないでください。

SELECT

カーソルに対応付けるSELECT文。直後の文にINTO句を含めないでください。

statement_name

カーソルに対応付けるSQL文またはPL/SQLブロックを指定します。statement_nameまたはblock_nameは、DECLARE STATEMENT文を使用して事前に宣言する必要があります。

使用上の注意

カーソルは、他の埋込みSQL文で参照する前に、宣言する必要があります。カーソル宣言のスコープはプリコンパイル・ユニット内全体になるため、各カーソルの名前はスコープ内で一意であることが必要です。1つのプリコンパイル・ユニット内で同じ名前のカーソルを複数宣言することはできません。

カーソルは、UPDATE文またはDELETE文のWHERE句内でCURRENT OF構文を使用して参照できます。このとき、カーソルはOPEN文を使用してオープンし、FETCH文を使用して行に位置付けられている必要があります。この文の詳細は、埋込みPL/SQLのカーソルの使用方法を参照してください。

この例では、DECLARE CURSOR文の使用方法を示します。

EXEC SQL DECLARE emp_cursor CURSOR 
    FOR SELECT ename, empno, job, sal 
        FROM emp 
        WHERE deptno = :deptno 
        FOR UPDATE OF sal; 

関連項目