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;
関連項目
CREATE PROCEDURE
CREATE TRIGGER