我有一个小 SSIS 问题。我正在将具有不同列列表的 MySQL 表中的数据提取到具有固定列列表的 SQL Server 表中。
源表:测试(mysql服务器)
id | name | sal | deptno | loc | referby
1 | abc | 100 |10 | hyd | xyz
2 | mnc | 200 |20 |chen | pqr
首先我选择 MySQL 表配置,然后我拖放 oledbdestination 用于 MySQL 服务器表配置。我配置了目标表,之后包工作正常,数据如下所示。
目标表:测试(sql server)
id | name | sal |deptno | loc |referby
1 | abc | 100 |10 | hyd | xyz
2 | mnc | 200 |20 |chen | pqr
第二次运行包时,已从源表的架构中删除了一个列,因此包失败。我打开 MySql 服务器 testsource 配置并编辑查询以为缺少的列返回 NULL:
select id,'null' as name,sal,deptno,loc,referby from test
我重新运行包,数据看起来像这样。
目标表:测试(sql server)
id | name | sal |deptno | loc |referby
1 | null | 100 |10 | hyd | xyz
2 | null | 200 |20 |chen | pqr
我总是截断目标表并加载数据。
目标表具有不变的列列表,而源表的列列表可以变化。我不想继续编辑查询以考虑可能缺少的列。我如何在包级别处理这个问题?