Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS中的右侧参差不齐无法正常工作_Sql Server_Ssis_Ssis 2012_Fixed Width - Fatal编程技术网

Sql server SSIS中的右侧参差不齐无法正常工作

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借用下

您好:我有一个SSIS包,它导入一个平面文本文件:文本文件是一个简单的固定宽度文件,也是CR/LF分隔的。这意味着:每条记录都有一组固定长度的列(这些列是使用固定长度定义的),但每条记录也必须以CR/LF结尾

我对包的定义如下:


问题:

有些记录没有定义所有列,因此它们较短。但是,所有记录都以CR/LF结尾。首先,我尝试使用“固定宽度”文件导入它,较短的记录没有对齐,因为它显然不是固定长度。现在,我使用的是ragged right,我仍然面临同样的问题。基本上,对于较短的记录,SSIS借用下一行来补偿。然而,下一行就可以了

可能的解决方案: 1-忽略其他不需要的列(基本上忽略它):这很好,但并不优雅。我希望有更好的解决办法。 2-在定义列之前,使用开头的记录类型进行拆分。这也很好,但我有500多个字段,使用平面文件导入的目的是能够自动生成列。
3-使用脚本组件:这似乎很难做到

最后一个屏幕截图的预期是,它应该是E,并且后面的列应该是空白的?@billinkc是的,没错!!为什么不是这样?因为在E之后我们有CR/LF,为什么它不进入下一个记录?这就像是固定的-width@billinkc运气好吗???谢谢我还没来得及编一个剧本。不过,为了验证您的标记,这是一个2012+SSIS包,是吗?@billinkc是的,这是正确的:我使用SQL Server 2012套件(包括SSIS 2012)