可以通过指定 WHERE 子句和键列来执行从源视图到目标表或视图的部分数据复制。该操作与数据表的部分复制非常相似。
以下示例显示了从源视图执行部分数据复制的情形:
<views> <view selection="included" copyData="true"> <name>deptsals</name> <database>MyDb</database> <view_data_table> <target_table>TargetTable</target_table> <target_database>TargetDb</target_database> </view_data_table> <staging_database> <name>TargetDb_Staging</name> </staging_database> <compare_ddl>true</compare_ddl> <sql_where_clause><![CDATA[ WHERE "deptsals"."employee_number" = 1]]></sql_where_clause> <key_columns> <key_column>employee_number</key_column> </key_columns> </view> </views>
在以上示例中,使用 WHERE 子句的 SELECT 语句用于从 "employee_number" = 1 的视图中选择数据,并将部分数据加载到目标表中。如果指定了 SQL WHERE 子句,则必须指定键列。
可以在复制视图中的视图定义或数据时不复制与该视图关联的表。
在将部分视图数据复制到目标视图时,符合条件的行会首先复制到暂存表中。在将行复制到暂存表后,WHERE 子句中符合条件的记录将从暂存表复制到目标视图。此过程与目标表含有数据时执行的部分表复制类似。