基本 MERGE 示例
您可以使用 MERGE INTO 子句将来自输入文件的数据合并为目标表的数据。这个示例将输入文件的数据合并到目标表中。对于主键字段匹配表行的输入行,它将使用输入行更新表行。对于其他输入行,它将向表中添加行。
清单 26. 基本 MERGE 示例语法
INGEST FROM FILE input_file.txt FORMAT DELIMITED ( $key1 INTEGER EXTERNAL, $data1 CHAR(8), $data2 CHAR(32), $data3 DECIMAL(5,2) EXTERNAL ) MERGE INTO target_table ON (key1 = $key1) WHEN MATCHED THEN UPDATE SET (data1, data2, data3) = ($data1, $data2, $data3) WHEN NOT MATCHED THEN INSERT VALUES($key1, $key2, $data1, $data2, $data3);
基本 DELETE 示例
您可以根据输入文件中的键值从目标表中删除行。该例将删除主键匹配输入文件中对应主键字段的表行。
清单 27. 基本 DELETE 示例语法
INGEST FROM FILE input_file.txt FORMAT DELIMITED ( $key1 INTEGER EXTERNAL, $key2 INTEGER EXTERNAL ) DELETE FROM target_table WHERE (key1 = $key1) AND (key2 = $key2);
SQL 示例
考虑以下示例,其中表包含 KEY、DATA 和 ACTION 列,您的输入文件中包含 KEY 和 DATA 两个字段。当 KEY 值匹配输入文件中对应字段且 ACTION 值为 U 时,您可以有条件地更新数据字段。
清单 28. SQL 示例语法
INGEST FROM FILE input_file.txt FORMAT DELIMITED ( $key_fld INTEGER EXTERNAL, $data_fld INTEGER EXTERNAL ) UPDATE target_table SET data = $data_fld WHERE (key = $key_fld) AND (action = 'U');