UPDATE(位置付け)
UPDATE(位置付け)ステートメントにより、SQL カーソルに関連付けられた行セットの現在の行を更新します。
構文
UPDATE [テーブル名] SET 列名 = プロシージャ式[, 列名 = プロシージャ式]...
WHERE CURRENT OF カーソル名
テーブル名 ::= ユーザー定義名
カーソル名 ::= ユーザー定義名
備考
このステートメントは、ストアド プロシージャ、トリガー、およびセッション レベルでのみ使用できます。
メモ: セッション レベルでは位置付け UPDATE は使用できますが、DECLARE CURSOR ステートメントは使用できません。アクティブな結果セットのカーソル名を取得する方法は、アプリケーションが使用している PSQL のアクセス方法によって決まります。アクセス方法については、PSQL のドキュメントを参照してください。
位置付け UPDATE ステートメントをセッション レベルで使用する場合のみ、ステートメントにテーブル名を指定できます。テーブル名をストアド プロシージャやトリガーを使って指定することはできません。
例
次の一連のステートメントは、位置付け UPDATE ステートメントの設定を示します。位置付け UPDATE に必要なステートメントは、DECLARE CURSOR、OPEN CURSOR、および FETCH FROM カーソル名です。
この例の位置付け UPDATE は、HIS 305 という講座名を HIS 306 に変更します。
CREATE PROCEDURE UpdateClass();
BEGIN
DECLARE :CourseName CHAR(7);
DECLARE :OldName CHAR(7);
DECLARE c1 cursor FOR SELECT name FROM course WHERE name = :CourseName FOR UPDATE;
SET :CourseName = 'HIS 305';
OPEN c1;
FETCH NEXT FROM c1 INTO :OldName;
UPDATE SET name = 'HIS 306' WHERE CURRENT OF c1;
END;
関連項目