如何使用基于自定义(例如XML)文件的SSIS导入选择性表

时间:2013-02-05 11:05:03

标签: sql sql-server oracle ssis data-migration

我的oracle数据库中有大约1200个表,需要将它们导入SQL Server数据库。但我想以这样的方式配置导入:在任何给定的导入中,我应该能够选择需要导入的表。

因此,我有一个自定义XML文件列出了所有表,并且每个表都有一个标志,指示是否要导入该表。另外,我创建了一个包来导入所有表,如果要在运行时从XML文件导入,请修改它以检查表。

我正在考虑实现类似于给定here的内容,但不想为这么多表执行此操作,也不知道它是否能完成这项工作。

我该如何解决这个问题?我可以使用SSIS配置文件(不确定)吗?有没有什么办法可以在运行时读取XML并根据XML文件(或任何其他具有键值对的文件)导入表。

任何形式的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

看起来似乎有很多工作,但这就是我的方法:

  1. 为每个需要导入的表创建一个包 - 所以1200个包。
  2. 将包名称与标志列一起存储在元数据表中,指示是否需要执行这些包。
  3. 创建父包。
  4. 在父包中添加执行sql任务。 SQL命令如下:select PackageName from metadataTable where Flag =1检索需要执行的包列表。
  5. 将结果集映射到对象变量。
  6. 为每个循环容器添加一个。
  7. 在每个循环容器中添加执行包任务,并参数化包名称属性。
  8. 整个设置读取需要执行的包,并一个接一个地执行它们。

    如果您喜欢这种方法,请查看Andy Leonard的SSIS framework

答案 1 :(得分:3)

Samuel Vanga采取了坚实的态度。我唯一要做的就是使用某些东西以编程方式生成这些1200包。

根据您对SSIS对象模型和常规.NET开发的熟悉程度,如果您喜欢编码,我会调查EzAPI

否则,请查看BIMLpackage generationBIDSHelper功能。您不需要通过Mist的许可证来创建BIML脚本,您可以浏览BIMLScript上的现有脚本并解决大部分需求。复制,粘贴,生成。