|
UPDATE(位置付け)ステートメントにより、SQL カーソルに関連付けられた行セットの現在の行を更新します。
UPDATE [テーブル名] SET 列名 = プロシージャ式[, 列名 = プロシージャ式]... WHERE CURRENT OF カーソル名 テーブル名 ::= ユーザー定義名 カーソル名 ::= ユーザー定義名
このステートメントは、ストアド プロシージャ、トリガー、およびセッション レベルでのみ使用できます。
メモ
セッション レベルでは位置付け UPDATE は使用できますが、DECLARE CURSOR ステートメントは使用できません。アクティブな結果セットのカーソル名を取得するには、SQLGetCursorName() API を使用します。
位置付け 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;
|