2012-06-18 31 views
0

我正在處理一個scenerio,我需要將3個csv文件加載到我的表中。爲此我使用3個平面文件連接管理器。SSIS中的多文件連接管理器

現在,而不是使用3個平面文件連接管理器,我只需要使用一個連接管理器的所有3個文件。

我開始知道我們可以使用多文件連接管理器來達到這個目的,但是這隻在文件具有相同列的情況下才起作用。

1.我的第一個CSV有編號,價格,金額,Total_Amt列
2.第二CSV文件的ID,價格,金額,Total_Amt,日期,債務列
3.第三CSV文件ID,速率,金額,Total_Amt,損失,收益列

如何使用多文件連接管理器進行此方法。

+0

對不起,只使用一個連接管理器的原因是什麼? – danihp

回答

0

你不能;多文件連接管理器可以有效地遍歷指定的文件,並將相同的設置應用於每個文件。如果你需要不同的設置,你需要使用不同的連接管理器或者創建自己的連接管理器(這可能只是三個獨立連接管理器的包裝)。

無論如何,這聽起來像一個不尋常的要求;只有一個連接管理器的原因是什麼?

0

您可以嘗試在Sathya Narayanan Srinivasan explains in her post中使用OLEdb insteat平面文件。

  1. 創建一個新的連接管理器
  2. 選擇新OLEDB連接
  3. 選擇供應商如微軟的Jet 4.0 OLEDB提供
  4. 選擇,同樣的窗口在後左邊你將有兩個選項卡切換。一個是All(其中提到了連接的屬性),另一個是連接信息。
  5. 全選。您會看到一個名爲ExtendedProperties的屬性。
  6. 在這種粘貼不帶引號:「文本; HDR =是; FMT =分隔符號」
  7. 將有另一個屬性稱爲模式,這將提16(只讀),如果你想讀/寫變化它爲19.
  8. 在連接選項卡下的服務器或文件名文本框中,輸入csv文件的路徑。只給它直到文件夾名稱而不是csv文件本身。 (例如:如果您的文件是c:\ sathya \ contact.csv,則將其作爲c:\ sathya)
  9. 如果您更改了Oledb源任務,查找任務和Oledb目標任務,則可以使用此Oledb連接模式到19即讀/寫。
  10. 在寫查詢,以便從CSV,取既然你已經給最多隻能作爲數據源,你需要寫這樣的查詢該文件夾

「從contact.csv選擇*」代替第10步讓你的自己的查詢:

  1. select id,Rate,null as Amount,Amount,Total_Amt,null as Date,null as yourFile中的債務。CSV
  2. 選擇ID,價格,金額,Total_Amt,日期,債務從yourFile.csv

免責聲明:未經測試。

相關問題