INSERT ステートメント

INSERT ステートメントは行をデータベース表に挿入します。

構文

1 行が、TableReference によって識別される表に挿入されます。ColumnName リストは、ターゲット表の、特定の値を提供される列を識別します。これらの値は、VALUES 文節中の式によって判別されます (最初の式は最初に名前を挙げられた列の値を提供し、以下同様になります)。VALUES 文節中の式の数は、名前の挙げられた列の数と同じでなければなりません。表にある列のうち、リストに挙げられていないものについては、デフォルト値が使用されます。

表参照

表参照は、メッセージ・ツリーの参照に使用される特殊なフィールド参照です。 先頭は常に "Database" という語になり、以下のいずれかが含まれる可能性があります。
  • 表名のみ
  • スキーマ名と表名
  • データ・ソース名 (つまり、データベース・インスタンスの名前)、スキーマ名、および表名
いずれの場合も、名前は直接指定するか、または式を中括弧 ({...}) で囲んで指定できます。直接指定したデータ・ソース、スキーマ、または表の名前は、名前置換の対象になります。つまり、使用している名前が既知の名前になるよう宣言されている場合、名前自体ではなく宣言済みの名前の値が使用されます (DECLARE ステートメントを参照)。

スキーマ名を指定しないと、ブローカーのデータベース・ユーザーのデフォルト・スキーマが使用されます。

データ・ソース名を指定しないと、ノードの「データ・ソース」 属性によって指されているデータベースが使用されます。

エラーの処理

挿入操作中にエラーが起きる可能性があります。例えば、データベースが操作可能でなくなったり、どのような場合に新しい行が違反になるかを示す表の制約が定義されていたりする場合があります。その場合 (ノードの「データベース・エラーで例外をスロー」プロパティーが FALSE に設定されているのでない限り)、例外がスローされます。これらの例外は、該当する SQL コード、状態、ネイティブ・エラー、およびエラー・テキストの値を設定し、エラー・ハンドラーで処理できます (DECLARE HANDLER ステートメントを参照)。

データベース・エラーの処理について詳しくは、データベース状態のキャプチャーを参照してください。

次の例では、Database ノードの dataSource プロパティーが構成されていて、このプロパティーが識別するデータベースには列 A、B、および C を持つ TABLE1 という表があるとしています。

汎用 XML 本体が次に示すものであるメッセージがあるとします。
<A>
 <B>1</B>
 <C>2</C>
 <D>3</D>
</A>
次の INSERT ステートメントは、列 A、B、および C の値 1、2、および 3 を持つ新しい行を表に挿入します。
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);
関連概念
ESQL の概要
関連タスク
ESQL の開発
データベース状態のキャプチャー
関連資料
構文図: 使用可能なタイプ
ESQL のステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak05050_