Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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

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
C# 如何通过单个平面文件源SSIS数据流项读取逗号文件(.csv)和制表符分隔文件(.txt)?_C#_Ssis - Fatal编程技术网

C# 如何通过单个平面文件源SSIS数据流项读取逗号文件(.csv)和制表符分隔文件(.txt)?

C# 如何通过单个平面文件源SSIS数据流项读取逗号文件(.csv)和制表符分隔文件(.txt)?,c#,ssis,C#,Ssis,我是SSIS新手,在我的一个项目中,我需要通过单个平面文件源读取逗号分隔的文件(.csv)和制表符分隔的文件(.txt)。遗憾的是,我无法将.txt文件内容设置为逗号分隔,因为这是由单独的源文件生成的,因为系统在提供给SSIS之前都没有修改文件内容的选项。我期待您的经验提供一些帮助和支持。如果可以使用多个平面文件源项(例如,一个用于.txt,另一个用于.csv),请建议。这是完全可能的。您可以创建两个源。现在您想如何组合它们?您可能希望使用UNION ALL转换—其中一种方法仍然是创建两个数据流

我是SSIS新手,在我的一个项目中,我需要通过单个平面文件源读取逗号分隔的文件(.csv)和制表符分隔的文件(.txt)。遗憾的是,我无法将.txt文件内容设置为逗号分隔,因为这是由单独的源文件生成的,因为系统在提供给SSIS之前都没有修改文件内容的选项。我期待您的经验提供一些帮助和支持。

如果可以使用多个平面文件源项(例如,一个用于.txt,另一个用于.csv),请建议。这是完全可能的。您可以创建两个源。现在您想如何组合它们?您可能希望使用UNION ALL转换—其中一种方法仍然是创建两个数据流,但要事先检测它是制表符还是逗号分隔的文件,然后运行相应的数据流。你有这方面的指标吗?文件的列数是否固定?您可以提前打开文件并进行检查。另一种方法是进行搜索,并事先用逗号替换选项卡。我建议您不要尝试对不同类型的文件使用相同的源。SSIS不喜欢动态更改元数据。根据@Jayvee的描述,这里有一个方便的脚本,可以根据分隔符将一列拆分为多列。不过,您仍然需要事先确定分隔符是什么。冒着额外IO操作的风险,您可以添加一个脚本任务,用另一个分隔符来修改和保存文件,以替换逗号和制表符。