2017-08-02 98 views
1

我有一個csv文件,格式數據如下。加載逗號分隔的csv文件到SSIS中的表格

文件:Sample.csv

ID,姓名,地址

1,ABCD,street1,3rdcross,XXXX

2,CFRE,2ndmain,3rdstreet,YYY

3,Asdf,4thmain,1stcross,zzz

需要將數據加載到表l下面是ike。

表:試樣

ID名稱地址

1個ABCD street1,3rdcross,XXXX

2 CFRE 2ndmain,3rdstreet,YYY

3 ASDF 4thmain,1stcross,ZZZ

如何使用SSIS實現此目的?

如果我們使用逗號分隔符,那麼地址欄將分成3列。

回答

0

最初當文本限定符設置爲無時,列是分開的。

enter image description here

當改變文本限定符雙引號「,那麼它是完美的。

enter image description here

+3

所以你的文件看起來不像你問你的問題。第三列實際上有引號。 – KeithL

1

如果你的數據是一致的5列,但你的頭是不是然後跳過第1行命名列,只要你想

可能:

Id,Name,Address,Directions,[Blah] 

如果您確實想要按照您陳述的那樣將它們放回","分隔的字段,請使用派生列和並置。

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

這可以從派生列轉換由follwing以下步驟來完成:

  1. 在平面文件連接管理器中選擇格式,左對齊,而不是分隔。所以你的數據將會在一列中出現
  2. 選擇派生列轉換。在這一轉變與下文提到的公式的創建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])) 
    

這是你如何可以從文本文件中得到三個單獨的列。