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_Text Files_Etl - Fatal编程技术网

Sql server 如何在SSIS或其他工具中处理包含许多被抑制列的参差不齐的右文本文件?

Sql server 如何在SSIS或其他工具中处理包含许多被抑制列的参差不齐的右文本文件?,sql-server,ssis,text-files,etl,Sql Server,Ssis,Text Files,Etl,对于以CRLF结尾的单个尾随字段而言,ragged right flat file选项非常有用,但是当任意数量的尾随字段为空且行以CRLF提前终止时,我在SSIS中没有其他选择,只能用单个“余数”读取其中的几列列,然后使用派生列转换和子字符串操作逐个提取“可选”列 我想到的一种可能性是,在连接管理器获得线路之前,是否有任何方法使线路通过SSIS中的“padder”组件。然后,您可以获得使用连接管理器设置传入列长度的所有好处。我总是可以创建一个外部程序(或一个完全独立的SSIS数据流)来传递一个文

对于以CRLF结尾的单个尾随字段而言,ragged right flat file选项非常有用,但是当任意数量的尾随字段为空且行以CRLF提前终止时,我在SSIS中没有其他选择,只能用单个“余数”读取其中的几列列,然后使用派生列转换和子字符串操作逐个提取“可选”列

我想到的一种可能性是,在连接管理器获得线路之前,是否有任何方法使线路通过SSIS中的“padder”组件。然后,您可以获得使用连接管理器设置传入列长度的所有好处。我总是可以创建一个外部程序(或一个完全独立的SSIS数据流)来传递一个文件,该文件将在每一行中填充空格(对于右边不规则的行,只需为每一行添加相同的最小空格数即可),但这看起来确实浪费了磁盘空间,而且还需要再次完全读取(和写入)文件

或者,可能有第三方数据源组件,如果行过早终止,该组件将简单地为NULL或空白,并自动显示列


还有其他选择吗?

我认为你提出的解决方案听起来很合理。磁盘空间很便宜。完全可以接受两步流程,即在导入数据之前清理格式。

使用脚本组件将列分隔为数据源