SSIS怎么处理异常同时不影响后面的数据正常流转

0
源库和目标数据库用的都是oracle,现在想要的的是如果其中一条数据报错,记录该条记录的错误信息,同时不影响后面的数据流转,怎么做到啊
已邀请:
1

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-07-17 回答

我就跟你说一下吧,最近可能比较忙。
不能给具体的截图了。

  1. 你需要使用OLEDB类型的控件
  2. 如果你需要记录错误信息,比如数据类型不正确,类似的错误。 你需要在Event Handlers里面包含一些SQL Task任务(使用OLEDB 类型的数据源连接)。将错误信息写入到你的ErrorLog表里.
  3. 在数据流里你在传输大量数据到目标表错误时,可以使用控件的 Error Output: 选择下面的Redirect Row, 将错误行重新定位到你的错误表里(类似查找匹配的功能)。
  4. 也可以使用事物,插入数据的过程中一旦错误所有都错误。但是当数据量很大时,这是不合适的。

另外: 能不能记录错误信息和具体什么数据库无关。 只要你SSIS里配置了,就可以记录。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-07-16 回答

处理数据的办法,还是和以前一样。
注意要使用 OLEDB类型的控件.

在数据出现错的时候,SSIS控件已经有了针对错误的处理办法.
今天下班了,明天给你给你做个例子。
0

rpeng90 2014-07-17 回答

截图如下,你看看有什么问题,
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-07-17 回答

看流程大致没有错误,把错误信息贴出来。
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2014-07-17 回答

另外我做了一个例子,你看看。
你这个也是可以的。


1.PNG


a1.PNG


a2.PNG


a3.PNG


a4.PNG
0

rpeng90 2014-07-17 回答

你这个是怎么写的
0

rpeng90 2014-07-17 回答

@梁勇 能不能解决
0

rpeng90 2014-07-17 回答

@BIWORK 能不能解决
0

雪泪洁花 2014-07-17 回答

你想要的效果是哪些数据有误,并且是什么错误,使用dataflowtask的erroroutput重定向即可,然后再加一个scripttask,获取系统可读变量errorcode作为可读变量,然后编辑代码:
Row.ErrorDesc = ComponentMetaData.GetErrorDescription(Row.ErrorCode);
这个ErrorDesc是你自己添加的输出列.
这样基本上就满足你的需求了.

要回复问题请先登录注册