UPDATE ステートメントは、外部データベースの表のうち、選択された行の、指定された列の値を変更します。
スキーマ名を指定しないと、ブローカーのデータベース・ユーザーのデフォルト・スキーマが使用されます。
データ・ソース名を指定しないと、ノードの「データ・ソース」 属性によって指されているデータベースが使用されます。
WHERE 文節式はすべてのブローカーの演算子および関数をどのような組み合わせでも使用できます。この式は、表の列、メッセージ・フィールド、および宣言済み変数や定数を参照できます。
しかし、ブローカーは式を検証し、データベースが式全体を評価可能であるかを判別して、WHERE 文節式を扱うことに注意してください。可能である場合、式はデータベースに渡されます。データベースによる評価が可能であるためには、データベースでサポートされる関数と演算子だけを使用しなければなりません。
しかし、WHERE 文節は、メッセージ・フィールド、包含している SELECT によって宣言された相関名、および有効範囲内にある他の宣言済み変数や定数を参照できます。
更新操作中にエラーが起きる可能性があります。例えば、データベースが操作可能でなくなったり、表に定義された制約により新しい値が違反になる場合があります。その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーが FALSE に設定されているのでない限り)、例外がスローされます。これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。
データベース・エラーの処理について詳しくは、 データベース状態のキャプチャーを参照してください。
UPDATE Database.StockPrices AS SP SET PRICE = InputBody.Message.StockPrice WHERE SP.COMPANY = InputBody.Message.Company
UPDATE Database.INVENTORY AS INV SET QUANTITY = INV.QUANTITY - InputBody.Message.QuantitySold WHERE INV.ITEMNUMBER = InputBody.Message.ItemNumber
UPDATE Database.table AS T SET column1 = T.column1+1, column2 = T.column2+2;
列名 ("=" の左辺) が単一の ID であることに注意してください。これらの ID は表名や相関名で修飾できません。一方、式の中のデータベース列に対する参照 ("=" の右辺) は、相関名で修飾しなければなりません。
-- Declare variables to hold the data source, schema and table names -- and set their default values DECLARE Source CHARACTER 'Production'; DECLARE Schema CHARACTER 'db2admin'; DECLARE Table CHARACTER 'DynamicTable1'; -- Code which calculates their actual values comes here -- Update rows in the table UPDATE Database.{Source}.{Schema}.{Table} AS R SET Value = 0;