SSIS - 平面文件嵌入式文本限定符 - 工作于2008年,不在2012年

时间:2015-10-08 00:54:36

标签: sql-server-2008 visual-studio-2012 ssis

我最近将一个SSIS项目从2008年改为2012年。这是一个在夜间自动运行的项目,并且已经过了2年的大部分时间(如2008版)。在过去的几周里,我看到一些文件失败了,我很难搞清楚原因。我害怕了:

  

[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Flat File Source上的PrimeOutput方法返回错误代码0xC0202092。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

而且:

  

[Flat File Source [20]]错误:找不到“NOTE_TEXT”列的列分隔符。

我挖掘数据,找到了这条线,并通过反复试验证实这是导致问题的双引号;拿出来,工作得很好。重新加入,再次破产。

从那以后我经历了不少帖子,令我惊讶的是,显然它应该在2008年没有工作,现在应该在2012年工作:

https://msdn.microsoft.com/en-us/library/ms140266%28v=sql.110%29.aspx

  

现在支持使用限定符来将限定符字符嵌入到限定字符串中。文本限定符的双实例被解释为该字符串的文字单个实例。例如,如果文本限定符是单引号并且输入数据是'abc','def','g'hi',则输出数据是abc,def,g'hi。

http://www.proactivespeaks.com/2012/06/22/my-5-favorite-sql-2012-ssis-features-so-far/

  

这是另一个在SQL 2012中已经解决的痛苦过程。从历史上看,如果平面文件有文本限定符,并且文本限定符字符在数据中,则SSIS不会正确解析它(示例数据行:' 123' , '456', '78'9')。现在,SSIS可以轻松处理这种情况。

我在SQL仓库中查看了带有双引号的注释示例,并发现了多年来传播的一些示例。这肯定是用于工作...一直到转换2012包接管的程度。

我检查了包属性/变量,数据流属性/变量,平面文件连接属性......它们都完全匹配:

enter image description here

注意:即使PREVIEW正确显示数据!!! enter image description here

enter image description here

我想快速修复一下,我只会将TextQualified标记为False,然后使用派生列修剪第一个和最后一个字符(引号),但这很荒谬......有必要是我缺少的东西。

任何帮助,或任何其他要检查的事情都将非常感激。

0 个答案:

没有答案