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
正在将逗号分隔的csv文件加载到SSIS中的表中_Ssis_Ssis 2012_Ssis 2008_Msbi_Ssis 2005 - Fatal编程技术网

正在将逗号分隔的csv文件加载到SSIS中的表中

正在将逗号分隔的csv文件加载到SSIS中的表中,ssis,ssis-2012,ssis-2008,msbi,ssis-2005,Ssis,Ssis 2012,Ssis 2008,Msbi,Ssis 2005,我有一个csv文件,其中包含以下格式的数据 文件:Sample.csv 身份证、姓名、地址 xxxx第三十字路口1号街Abcd 1号 yyy第三街第二主街Cfre 2号 3号,Asdf,4号主站,1号交叉站,zzz 需要将数据加载到下表中 表:样本 身份证名称地址 xxxx年第三十字路口Abcd街1号 yyy第三街2号Cfre 2ndmain 3 Asdf 4thmain,1stcross,zzz 如何使用SSIS实现这一点 如果使用逗号分隔符,则地址列将拆分为3列。最初,当文本限定符设置为“无

我有一个csv文件,其中包含以下格式的数据

文件:Sample.csv

身份证、姓名、地址

xxxx第三十字路口1号街Abcd 1号

yyy第三街第二主街Cfre 2号

3号,Asdf,4号主站,1号交叉站,zzz

需要将数据加载到下表中

表:样本

身份证名称地址

xxxx年第三十字路口Abcd街1号

yyy第三街2号Cfre 2ndmain

3 Asdf 4thmain,1stcross,zzz

如何使用SSIS实现这一点


如果使用逗号分隔符,则地址列将拆分为3列。

最初,当文本限定符设置为“无”时,这些列将分开

当将文本限定符改为双引号“时,它就完美了


如果您的数据始终是5列,但标题不是,则跳过第1行,并根据需要命名列

可能:

Id,Name,Address,Directions,[Blah]
如果您真的想将它们放回一个“
”字段中,请使用“派生列”并连接

new column = Address + "," + Directions + "," + [Blah]

这可以通过以下步骤从派生列转换完成:

  • 在平面文件连接管理器中,选择格式为右参差不齐且不带分隔符。这样您的数据将在一列中显示
  • 选择派生列转换。使用以下公式在此转换中创建3列:

    ID - SUBSTRING([Id,Name,Address],1,FINDSTRING([Id,Name,Address],",",1) - 1)
    
    Name - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",1) + 1,FINDSTRING([Id,Name,Address],",",2) - FINDSTRING([Id,Name,Address],",",1) - 1)
    
    Address - SUBSTRING([Id,Name,Address],FINDSTRING([Id,Name,Address],",",3) + 1,LEN([Id,Name,Address]))
    

  • 这就是如何从文本文件中获得三个独立的列。

    因此,您的文件看起来与您在问题中所问的不一样。第三列的周围实际上有引号。