在使用 XML 执行部分复制时,请在要执行部分复制的表的 table 标记中嵌入一个 sql_where_clause 标记以及一个或多个 key_column 标记。sql_where_clause 标记用于指定部分复制作业的提取操作所使用的 SQL WHERE 子句。key_column 标记用于指定列的名称,列名称可在插入并更新目标表时唯一地标识每一行。
例如:
<table selection="included"> <name>Table1</name> <sql_where_clause><![CDATA[ WHERE col1 > 4]]></sql_where_clause> <key_columns> <key_column>col1</key_column> <key_column>col2</key_column> </key_columns> </table>
在 sql_where_clause 标记中,WHERE 子句必须包括在特殊的 CDATA 标记 ![CDATA[ where clause ]] 中,并且 WHERE 子句必须包括 WHERE 关键字。请勿在 SQL 结尾处使用 ; 字符。
在使用 Teradata PT 执行部分复制时,Teradata PT export 运算符不支持只需一次 AMP 运算即可满足的 WHERE 子句。例如,一个 SELECT 语句,该语句具有一个约束条件,其中包含针对表中主索引或唯一二级索引列提供的等式条件(例如,WHERE col1 = 1,其中 col1 是表的主键)。在此类情况下,应使用另一种复制方法。
为了获得最佳结果,如果至少有一个主索引是唯一的,则指定所有主索引作为键列。对于 PPI 表,请指定所有主索引和分区列作为键列。如果在指定主索引时省略分区列,则可能会导致作业失败。