2

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

因此,我有一个自定义 XML 文件,其中列出了所有表和每个表的标志,指示是否要导入该表。我还创建了包来导入所有表,并且想修改它以检查表是否要在运行时从 XML 文件中导入。

我正在考虑实现类似 given here的东西,但不想为这么多表执行此操作,也不知道它是否可以完成这项工作。

我怎样才能解决这个问题?我可以为此使用 SSIS 配置文件吗(虽然不确定)?有什么方法可以在运行时读取 XML 并基于 XML 文件(或任何其他具有键值对的文件)导入表。

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

4

2 回答 2

4

看起来工作量很大,但这就是我的方法:

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

整个设置读取需要执行的包,并一个接一个地执行它们。

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

于 2013-02-05T15:12:28.747 回答
3

塞缪尔万加有一个可靠的方法。我唯一想做的就是使用一些东西以编程方式生成这 1200 个包。

根据您对 SSIS 对象模型和一般 .NET 开发的熟悉程度,如果您喜欢编码,我会研究EzAPI 。

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

于 2013-02-05T15:49:13.270 回答