SQL 構文リファレンス : FETCH
 
このページをシェアする                  
FETCH
構文
FETCH [[NEXT] FROM] カーソル名 INTO 変数名
 
カーソル名 ::= ユーザー定義名
備考
FETCH ステートメントにより、指定したテーブル行に SQL カーソルを位置付け、ターゲット リストに値を入れる変数を配置して、その行から値を取り出します。
カーソルからデータをフェッチする場合は、NEXT および FROM キーワードを省略することができます。
メモ:PSQL は前方スクロール タイプのカーソルのみサポートします。そのため、NEXT FROM を省略しても、カーソル レコードの流れを制御することはできません。
この例の FETCH ステートメントでは、カーソル c1 の値が OldName 変数に取り込まれます。また、位置付け UPDATE ステートメントにより、同じ Demodata サンプル データベース内の Course テーブルの Modern European History(HIS 305)の行が更新されます。
CREATE PROCEDURE UpdateClass();
BEGIN
  DECLARE :CourseName CHAR(7);
  DECLARE :OldName CHAR(7);
  DECLARE c1 cursor FOR SELECT name FROM course WHERE name = :CourseName;
  OPEN c1;
  SET :CourseName = 'HIS 305';
  FETCH NEXT FROM c1 INTO :OldName;
  UPDATE SET name = 'HIS 306' WHERE CURRENT OF c1;
END;
============ 
CREATE PROCEDURE MyProc(OUT :CourseName CHAR(7)) AS
BEGIN
  DECLARE cursor1 CURSOR
  FOR SELECT Degree, Residency, Cost_Per_Credit FROM Tuition ORDER BY ID;
  OPEN cursor1;
  FETCH NEXT FROM cursor1 INTO :CourseName;
  CLOSE cursor1;
END
関連項目
CREATE PROCEDURE