我的 oracle 数据库中有大约 1200 个表,需要将它们导入 SQL Server 数据库。但我想以这样一种方式配置导入,即在任何给定导入时,我应该能够选择需要导入的表。
因此,我有一个自定义 XML 文件,其中列出了所有表,每个表都有一个标志,指示是否要导入该表。我还创建了导入所有表的包,并希望修改它以检查表是否要在运行时从 XML 文件导入。
我正在考虑实现类似给定的 here 的东西,但不想为这么多表执行此操作,也不知道它是否会完成这项工作。
我该如何解决这个问题?我可以为此使用 SSIS 配置文件吗(虽然不确定)?有什么方法可以让我在运行时读取 XML 并根据 XML 文件(或任何其他具有键值对的文件)导入表。
我们将不胜感激任何形式的帮助。
请您参考如下方法:
看起来工作量很大,但这就是我的处理方式:
- 为需要导入的每个表创建一个包 - 所以 1200 个包。
- 将包名称与标志列一起存储在元数据表中,指示是否需要执行该包。
- 创建父包。
- 在父包中添加一个执行sql任务。像这样的 SQL 命令:
select PackageName from metadataTable where Flag =1
检索需要执行的包列表。 - 将结果集映射到对象变量。
- 为每个循环容器添加一个。
- 在for each循环容器中添加Execute package task,并参数化package name属性。
整个设置读取需要执行的包,然后一个接一个地执行。
如果您喜欢这种方法,请查看 Andy Leonard 的 SSIS framework .