Sql server SSIS中的右侧参差不齐无法正常工作
您好:我有一个SSIS包,它导入一个平面文本文件:文本文件是一个简单的固定宽度文件,也是CR/LF分隔的。这意味着:每条记录都有一组固定长度的列(这些列是使用固定长度定义的),但每条记录也必须以CR/LF结尾 我对包的定义如下:Sql server SSIS中的右侧参差不齐无法正常工作,sql-server,ssis,ssis-2012,fixed-width,Sql Server,Ssis,Ssis 2012,Fixed Width,您好:我有一个SSIS包,它导入一个平面文本文件:文本文件是一个简单的固定宽度文件,也是CR/LF分隔的。这意味着:每条记录都有一组固定长度的列(这些列是使用固定长度定义的),但每条记录也必须以CR/LF结尾 我对包的定义如下: 问题: 有些记录没有定义所有列,因此它们较短。但是,所有记录都以CR/LF结尾。首先,我尝试使用“固定宽度”文件导入它,较短的记录没有对齐,因为它显然不是固定长度。现在,我使用的是ragged right,我仍然面临同样的问题。基本上,对于较短的记录,SSIS借用下
问题: 有些记录没有定义所有列,因此它们较短。但是,所有记录都以CR/LF结尾。首先,我尝试使用“固定宽度”文件导入它,较短的记录没有对齐,因为它显然不是固定长度。现在,我使用的是ragged right,我仍然面临同样的问题。基本上,对于较短的记录,SSIS借用下一行来补偿。然而,下一行就可以了 可能的解决方案: 1-忽略其他不需要的列(基本上忽略它):这很好,但并不优雅。我希望有更好的解决办法。 2-在定义列之前,使用开头的记录类型进行拆分。这也很好,但我有500多个字段,使用平面文件导入的目的是能够自动生成列。
3-使用脚本组件:这似乎很难做到 最后一个屏幕截图的预期是,它应该是E,并且后面的列应该是空白的?@billinkc是的,没错!!为什么不是这样?因为在E之后我们有CR/LF,为什么它不进入下一个记录?这就像是固定的-width@billinkc运气好吗???谢谢我还没来得及编一个剧本。不过,为了验证您的标记,这是一个2012+SSIS包,是吗?@billinkc是的,这是正确的:我使用SQL Server 2012套件(包括SSIS 2012)