用途
カーソルを宣言するためにカーソルに名前を付け、それを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;
関連項目