正在将逗号分隔的csv文件加载到SSIS中的表中
我有一个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实现这一点正在将逗号分隔的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列。最初,当文本限定符设置为“无
如果使用逗号分隔符,则地址列将拆分为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]))
这就是如何从文本文件中获得三个独立的列。因此,您的文件看起来与您在问题中所问的不一样。第三列的周围实际上有引号。