我有一个带有格式化数据的csv文件。
文件:Sample.csv
ID,名称,地址
1,ABCD,street1,3rdcross,XXXX
2,CFRE,2ndmain,3rdstreet,YYY
3,ASDF,4thmain,1stcross,ZZZ
需要将数据加载到如下表格中。
表:样本
Id名称地址
1 Abcd street1,3rdcross,xxxx
2 Cfre 2ndmain,3rdstreet,yyy
3 Asdf 4thmain,1stcross,zzz
如何使用SSIS实现这一目标?
如果我们使用逗号分隔符,则地址列将分为3列。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您的数据始终为5列但标题不是,则跳过第1行并根据需要命名列。
可能:
Id,Name,Address,Directions,[Blah]
如果你真的想把它们放回到你所说的","
分隔字段,那么使用派生列并连接。
new column = Address + "," + Directions + "," + [Blah]
答案 2 :(得分:0)
这可以通过以下步骤从派生列转换中完成:
选择派生列转换。使用下面提到的公式
在此转换中创建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]))
这是从文本文件中获取三个单独列的方法。