型変数の<g1>DECLARE CURSOR</g1>
一意の名前を指定し、オプションでそのデータタイプを指定することにより、SQLスクリプトで新しいカーソル変数を定義できます。
詳細については、
カーソルの属性、
OPEN、
FETCH、および
CLOSEを参照してください。
構文
DECLARE <variableName> CURSOR [<dataType>]
備考
•<dataType>はオプションであり、名前付きROWデータタイプまたはROWデータタイプの構文にすることができます。
•宣言されると、カーソル変数はNULLに初期化されます。宣言時に他の値に初期化することはできません。
•次のように、OPENステートメントでSCROLLキーワードを使用して、カーソルから行がフェッチされた後にカーソルを開くことができます。
DECLARE i INT;
DECLARE x CURSOR (a int) FOR SELECT COUNT(*) FROM /services/databases/system/ALL_USERS;
OPEN x SCROLL;
例
次の例では、名を返します。
PROCEDURE p (OUT p_name VARCHAR)
BEGIN
DECLARE c CURSOR (name VARCHAR);
OPEN c FOR SELECT name FROM /shared/T;
FETCH c INTO p_name;
CLOSE c;
END
次の例では、同じクエリでcを閉じてから再度開き、後で閉じて新しいクエリで再度開きます。
PROCEDURE p (OUT p_name VARCHAR)
BEGIN
DECLARE c CURSOR (name VARCHAR);
OPEN c FOR SELECT name FROM /shared/T;
CLOSE c;
OPEN c;
CLOSE c;
OPEN c FOR SELECT name FROM /share/U WHERE birthdate > '2000-01-01';
CLOSE c;
END