INSERT ステートメントは行をデータベース表に挿入します。
1 行が、TableReference によって識別される表に挿入されます。ColumnName リストは、ターゲット表の、特定の値を提供される列を識別します。これらの値は、VALUES 文節中の式によって判別されます (最初の式は最初に名前を挙げられた列の値を提供し、以下同様になります)。VALUES 文節中の式の数は、名前の挙げられた列の数と同じでなければなりません。表にある列のうち、リストに挙げられていないものについては、デフォルト値が使用されます。
スキーマ名を指定しないと、ブローカーのデータベース・ユーザーのデフォルト・スキーマが使用されます。
データ・ソース名を指定しないと、ノードの「データ・ソース」 属性によって指されているデータベースが使用されます。
挿入操作中にエラーが起きる可能性があります。例えば、データベースが操作可能でなくなったり、どのような場合に新しい行が違反になるかを示す表の制約が定義されていたりする場合があります。その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーが FALSE に設定されているのでない限り)、例外がスローされます。これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。
データベース・エラーの処理について詳しくは、データベース状態のキャプチャーを参照してください。
次の例では、Database ノードの dataSource プロパティーが構成されていて、このプロパティーが識別するデータベースには列 A、B、および C を持つ TABLE1 という表があるとしています。
<A> <B>1</B> <C>2</C> <D>3</D> </A>
INSERT INTO Database.TABLE1(A, B, C) VALUES (Body.A.B, Body.A.C, Body.A.D);
-- 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 -- Insert the data into the tabl INSERT INTO Database.{Source}.{Schema}.{Table} (Name, Value) values ('Joe', 12.34);