首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS OLE条件“插入”

SSIS OLE条件“插入”
EN

Stack Overflow用户
提问于 2012-06-15 13:45:38
回答 1查看 1.6K关注 0票数 2

我不知道是否可以这样做,但基本上,我有以下数据流:

  1. 从XML文件中提取数据(工作正常)
  2. 简单地根据封闭的条件拆分记录(工作正常)
  3. 由于某些字符集问题,不得不添加派生列对象(可能是更好的方法,但它有效)

现在,“步骤4”是一个场景,我只想在数据库中插入具有相应匹配的值,例如,XML有大约6000条记录,从这些记录中,我可能有10条记录需要对它们进行匹配并插入,而不是插入所有6000条记录,然后在事实之后进行比较(我也可以这样做,但希望有另一种方法)。我在想,我可能能够在OLE目标对象中执行一个sql insert命令,在该对象中,文件中的ID值与之匹配,但这一点我还没有100%清楚,或者甚至有可能。我是应该简单地通过临时表路由并在事实发生后清除数据,还是可以直接在目标块中这样做?如有任何建议,将不胜感激。

编辑

多亏了billinkc的最后一条评论,我设法接近了一点,在那里我可以识别匹配并使用结果集,但是不知怎么的,它似乎两次运行数据流,这很奇怪.我拿出了查找对象,看看它是否导致了它,不知怎么的,它为什么会在添加查找的情况下运行整个流两次呢?我总共应该有8个匹配,这是我在数据查看器输出中确认的,但是它似乎是第二次为同一个文件运行它。

EN

回答 1

Stack Overflow用户

发布于 2012-06-15 14:31:00

是否存在无法使用查找转换查找现有记录的原因?将其配置为将不匹配记录路由到无匹配输出,然后只将找到的匹配连接器连接到"Navigator暂存管理器基金“。

我相信这回答了你的问题,但我不知道你是否表达了正确的愿望?我的假设是查找将与现有目标相反,因此查找返回一行的id 10。SSIS中所有的开箱即用目的地都只执行插入,因此找到匹配的行现在将加倍。在寻找现有行时,这通常意味着要对现有行执行更新。如果是这样的话,就有一个特殊设计的转换,OLE DB命令。它是允许更新的组件。该组件存在性能问题,它会在每一行中发出一个update语句。十排的话,我觉得没问题。否则,您将使用的模式是将所有新行(插入)写入目标表,然后将所有已更改的行(更新)写入第二个暂存类型表。数据流完成后,然后使用Execute SQL Task执行基于集合的update语句。

有一些第三方选项可以处理组合的鞋帮。我知道语用作品有一个选项,而且任务和组成部分站点上可能还有其他的选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11051868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档