2017-08-02 18 views
1

以下のフォーマットのデータを持つcsvファイルがあります。カンマ区切りCSVファイルをSSISのテーブルにロード

ファイル:Sample.csv

ID、名前は、

1住所、ABCD、street1,3rdcrossは、3rdstreet、YYY

2、Cfre、2ndmainをxxxxを3、Asdf、4thmain、1stcross、zzz

テーブルlにデータをロードする必要がある下のike。

表:サンプル

ID名アドレス

1 ABCD street1,3rdcrossは、

3 ASDFの4thmain、1stcross、ZZZ

YYY、Cfre 2ndmain 3rdstreetを

2 xxxxを

SSISを使用してこれを達成するにはどうすればよいですか?

カンマ区切り文字を使用すると、アドレス列は3つの列に分割されます。

答えて

0

最初にテキスト修飾子がnoneに設定されている場合、列は区切られます。

enter image description here

変更テキスト修飾子は、二重」、それは完璧だった引用さにする。

enter image description here

+3

あなたの質問であなたのファイルが似ていないようです。 3列目には実際にその周りに引用符があります。 – KeithL

1

あなた、あなたのデータは一貫して5列ですが、あなたのヘッダーは、行1をスキップしていない場合はあなたが好きな列に名前を付けるおそらく

:。

Id,Name,Address,Directions,[Blah] 

あなたが実際にあなたが指定した通りに","デリミタ付きフィールドにそれらを戻したい場合は、派生カラムを使用して連結してください。

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

これは、次の手順をfollwingによって派生列変換から行うことができます:フラットファイル接続マネージャで

  1. は区切りラギッド権利として形式を選択していません。したがって、データは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])) 
    

:下記の式のと、この変換に3列を作成します。

関連する問題