DELETE FROM ステートメントは、検索条件に基づいて、外部データベースの表から行を削除します。
WHERE 文節式が TRUE に評価されるすべての行は、TableReference によって識別される表から削除されます。
個々の行が順番に検査され、変数は現在行を指すように設定されます。 通常、WHERE 文節式はこの変数を使用して列値にアクセスするので、その内容に従って行が保存されたり削除されたりします。 変数は CorrelationName によって参照されるか、または AS 文節がない場合は TableName によって参照されます。
スキーマ名を指定しないと、ブローカーのデータベース・ユーザーのデフォルト・スキーマが使用されます。
データ・ソース名を指定しないと、ノードの「データ・ソース」 属性によって指されているデータベースが使用されます。
WHERE 文節式はすべてのブローカーの演算子および関数をどのような組み合わせでも使用できます。この式は、表の列、メッセージ・フィールド、および宣言済み変数や定数を参照できます。
しかし、ブローカーは式を検証し、データベースが式全体を評価可能であるかを判別して、WHERE 文節式を扱うことに注意してください。可能である場合、式はデータベースに渡されます。データベースによる評価が可能であるためには、データベースでサポートされる関数と演算子だけを使用しなければなりません。
しかし、WHERE 文節は、メッセージ・フィールド、包含している SELECT によって宣言された相関名、および有効範囲内にある他の宣言済み変数や定数を参照できます。
削除操作中にエラーが起きる可能性があります。例えば、データベースが操作可能でなくなる場合があります。その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーが FALSE に設定されているのでない限り)、例外がスローされます。これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。
データベース・エラーの処理について詳しくは、 データベース状態のキャプチャーを参照してください。
DELETE FROM Database.SHAREHOLDINGS AS S WHERE S.ACCOUNTNO = InputBody.AccountNumber;
これによって、表 SHAREHOLDINGS の中の ACCOUNTNO 列の値が、メッセージの中の AccountNumber フィールドの値と等しい行はすべて、この表から削除されます。ゼロ、1 つ、または複数の行が表から削除される可能性があります。
-- 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 -- Delete rows from the table DELETE FROM Database.{Source}.{Schema}.{Table} As R WHERE R.Name = 'Joe';