SQL Engine Reference (v11)

FETCH

備考

FETCH ステートメントにより、指定したテーブル行に SQL カーソルを位置付け、ターゲット リストに値を入れる変数を配置して、その行から値を取り出します。

カーソルからデータをフェッチする場合は、NEXT および FROM キーワードの使用は選択できません。


メモ

Pervasive PSQL は前方スクロール タイプのカーソルのみサポートします。そのため、NEXT FROM を省略しても、カーソル レコードの流れを制御することはできません。


構文

FETCH [[NEXT] FROM]カーソル名 INTO 変数名 
 
カーソル名 ::= ユーザー定義名 

この例の 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; 
666
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


EXISTS

FOREIGN KEY