4.40.1 準備可能動的UPDATE文:位置付け 形式2の形式と規則
- 〈この項の構成〉
(1) 機能
FIX指定の表内のカーソルが指している行の指定した列を更新します。PREPARE文で前処理してからEXECUTE文で実行,又はEXECUTE IMMEDIATE文で前処理と実行を一度に行う場合に使用します。
(2) 使用権限
表に対するUPDATE権限を持つユーザが,その表の列の値を更新できます。
(3) 形式2 <FIX指定の表内の行をカーソルを使用して行単位で更新(前処理可能)>
UPDATE 〔〔認可識別子.〕表識別子 〔IN (RDエリア名指定)〕 〔〔AS〕 相関名〕 〔使用インデクスのSQL最適化指定〕〕 SET ROW=行更新値 WHERE CURRENT OF GLOBAL カーソル名 〔WITH ROLLBACK〕 〔WRITE IMMEDIATE〕
(4) オペランド
SET句の行更新値,及びWHERE CURRENT OF GLOBAL カーソル名以外のオペランド,及びオペランド規則については,「UPDATE文 形式2(データ更新)」を参照してください。
また,WHERE CURRENT OF GLOBAL カーソル名のオペランド,及びオペランド規則については,「準備可能動的UPDATE文:位置付け 形式1(前処理可能なカーソルを使用したデータ更新)」を参照してください。
(5) 共通規則
-
PREPARE文で前処理してから,EXECUTE文で実行,又はEXECUTE IMMEDIATE文で前処理と実行を一度に行います。
-
表識別子を省略する場合は,前処理する前に,ALLOCATE CURSOR文によって動的SELECT文にカーソルが割り当てられている必要があります。このとき,カーソルを割り当てた動的SELECT文に指定している検索対象の表を仮定します。表識別子を指定する場合には,前処理する前に,動的SELECT文にカーソルが割り当てられている必要はありません。
-
そのほかの共通規則については,UPDATE文 形式2の共通規則が適用されます。
(6) 参照制約に関する規則
-
UPDATE文 形式2の参照制約に関する規則が適用されます。
(7) 留意事項
-
UPDATE文 形式2の留意事項が適用されます。
(8) 使用例
-
在庫表(ZAIKO)内のカーソル(cr(値:’CR1’))が指している行のデータを埋込み変数(XROW)の内容でまとめて更新するSQLを動的に実行します。
PREPARE GLOBAL :sel FOR ‘SELECT * FROM ZAIKO FOR UPDATE’ <埋込み変数crに’CR1’を設定> ALLOCATE GLOBAL :cr CURSOR FOR GLOBAL :sel PREPARE PRE1 FOR ‘UPDATE SET ROW = ? WHERE CURRENT OF GLOBAL CR1’ OPEN GLOBAL :cr FETCH GLOBAL :cr INTO <各列を取り出す変数名> EXECUTE PRE1 USING :XROW CLOSE GLOBAL :cr DEALLOCATE PREPARE GLOBAL :sel