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 导入交替行中具有不同格式的文件_Sql Server_Ssis - Fatal编程技术网

Sql server 导入交替行中具有不同格式的文件

Sql server 导入交替行中具有不同格式的文件,sql-server,ssis,Sql Server,Ssis,我需要使用SSI加载1个文件。 我正在获取以csv文件分隔的管道(|)。但在每一个数据行之间,我得到一行只有“------------”。若我试图以管道分隔的形式加载文件,那个么我并没有得到正确的记录 我有一个解决方案,我需要将整行加载到单个列中,而我需要过滤带有“----”的行,而我需要使用转换并将行拆分为列。但一旦发生变化,就很难管理 有谁能告诉我加载这些文件的其他想法吗? 您可以通过脚本任务或转换来实现这一点。查看脚本中的每一行,如果都是破折号,则忽略它,否则按管道字符对其进行解析。之后,

我需要使用SSI加载1个文件。 我正在获取以csv文件分隔的管道(|)。但在每一个数据行之间,我得到一行只有“------------”。若我试图以管道分隔的形式加载文件,那个么我并没有得到正确的记录

我有一个解决方案,我需要将整行加载到单个列中,而我需要过滤带有“----”的行,而我需要使用转换并将行拆分为列。但一旦发生变化,就很难管理

有谁能告诉我加载这些文件的其他想法吗?

您可以通过脚本任务或转换来实现这一点。查看脚本中的每一行,如果都是破折号,则忽略它,否则按管道字符对其进行解析。

之后,我发现解决方案是以“右参差不齐”格式读取文件。然后过滤掉以“-”开头的记录.

在尝试将其作为csv读入之前,我会先看看是否有办法删除备用行……为什么不使用条件拆分并将“----”行发送到多播?您可以(如果愿意!)然后用逗号替换剩余数据上的管道(|),并将其输出到新的.csv文件。接下来的数据流将读取这个.csv文件。您需要在创建第二个数据流之前运行一次,因为您需要一个示例.csv文件来设置新的数据源。处理这种情况的方法可能有很多,但更好的选择是要求客户端仅在csv中发送有效记录,如果csv文件大小较大(例如1GB),则会影响性能,因为您的包将在文件中查找不良记录,这意味着您正在检查每一行。