【问题标题】:SSIS insert recrods from Oracle to SQL and even process themSSIS 将记录从 Oracle 插入到 SQL,甚至处理它们
【发布时间】:2017-06-19 19:15:50
【问题描述】:

感谢您的回答...

我是 SSIS 的新手,我有以下要求:

  1. 我们根据某些标准从 Oracle 获取批量记录。
  2. 我需要先将所有这些批量记录插入到 SQL Server 中的审计表中。这些表只有几列。这样做的原因是我们将了解在每个周期中我们从 oracle 获得了多少条记录,以及它们是否堆积起来的确切原因是什么。
  3. 插入审计表后,我需要在 SQL Server 中逐一处理它们,在处理结束时,我要么接受记录并将整个记录插入 SQL 服务器,要么拒绝 SQL 服务器中的记录业务状况。

目前为了实现这一点,我首先在 SSIS 包中添加了一个数据流任务,该任务从 Oracle 中选择几列(审计表需要),并在转换后将它们插入 SQL 服务器。比我再次使用 SQL 执行任务从 oracle 获取记录并使用 sql server 中的每个容器一一处理它们。

如上所述,我对 Oracle 进行了两次调用,但我无法将其减少到一次?

有人可以指导我如何实现这一目标吗?

提前致谢。

【问题讨论】:

  • 如何插入部分数据集然后从部分集中提取完整数据集?如果您想让它成为一个流程,您需要反转您的流程或将它们保留为 2 个部分。
  • 是否有可能从 oracle 获取数据一次循环并将它们存储在审计表中,然后再次循环它们并处理记录。我不确定 SSIS 是否允许在两个循环中循环两次相同的枚举器,这是否会提供更好的性能?

标签: sql oracle ssis


【解决方案1】:

如果您在 SQL 中已有数据(您在审计表中进行了批量复制),您可以从那里获取数据并在您想要的表中插入。

您可以使用 SQL 执行任务来操作 SQL 中的数据,而不是从 Oracle 读取数据两次。您可以从这里插入语句到最终表。

【讨论】:

  • 我不会拥有审计表中的所有列。它只有 5 列。
  • 那你为什么要在插入之前审核记录呢?审核接受的记录不是更好吗?
  • 我需要插入来自 Oracle 的所有记录,无论它们是否正在被处理,这取决于业务标准。但是这种日志/审计将维护所有记录。
猜你喜欢
  • 2014-04-09
  • 2021-06-26
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多