Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


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(前処理可能なカーソルを使用したデータ更新)」を参照してください。

(a) SET句

行更新値

ROWに対応した行更新値として,次に示す項目が指定できます。

  • ?パラメタ

(5) 共通規則

  1. PREPARE文で前処理してから,EXECUTE文で実行,又はEXECUTE IMMEDIATE文で前処理と実行を一度に行います。

  2. 表識別子を省略する場合は,前処理する前に,ALLOCATE CURSOR文によって動的SELECT文にカーソルが割り当てられている必要があります。このとき,カーソルを割り当てた動的SELECT文に指定している検索対象の表を仮定します。表識別子を指定する場合には,前処理する前に,動的SELECT文にカーソルが割り当てられている必要はありません。

  3. そのほかの共通規則については,UPDATE文 形式2の共通規則が適用されます。

(6) 参照制約に関する規則

  1. UPDATE文 形式2の参照制約に関する規則が適用されます。

(7) 留意事項

  1. UPDATE文 形式2の留意事項が適用されます。

(8) 使用例

  1. 在庫表(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