2016-03-14 31 views
1

我目前正在創建一個ETL包會從.csv文件複製到數據庫數據導入到SQL語句。我目前的問題是當我嘗試導入數據時,有些行不在應該在的列上。請參閱我下面的例子:導入使用SSIS結果的數據移動到下一列

這是正確的輸出

Item No | Total Amount | No. of Lines | Time Received | Date Received 

1 | 575.85 | 1 | 13:01:35 | 2/16/16

一些信息變成是這樣的:

Item No | Total Amount | No. of Lines | Time Received | Date Received

NULL 1 NULL 1 13:01:35

看,它移到了它不應該在的列上。 希望你得到了我的意思:( 請幫助我,我開始拿到,因爲這是一個頭痛的問題。:( 感謝。

+0

你手動檢查CSV文件,看看其中的數據結構是正確的?看起來您有一個文件,其中包含一些缺少的數據或導入的錯誤類型的數據。 – HLGEM

+0

是的,我檢查了我的csv文件中的所有數據..我想知道爲什麼有些數據是這樣的,有些不是。某些數據正確導入, –

+0

在這種情況下,請根據SSIS軟件包使用的數據檢查數據的數據類型。還要檢查額外的分米。以CSV它是很容易得到拋出信息錯線之後 – HLGEM

回答

2

檢查,看是否有該文件中多餘的逗號。如果有然後這些選項之一是,這是你需要做什麼:

  • 詢問供應商使用不同的分隔符不是逗號,我們堅持| 作爲分隔符
  • 詢問提供商使用「的。文本限定符
  • 詢問文件的供應商擦洗Ø在發送它們之前,請使用逗號作爲他們的數據 。
  • 要求提供商給你一些其他類型的文件,因爲CSV是 由於這個原因導入的第二嚴重類型(Excel是 最糟糕的)。帶有|的.txt文件分隔符是最不可能導致 這種導入問題。
  • 編寫一個進程,刪除錯誤編號爲 列的行,並將它們置於異常,然後創建一個進程清除該數據並將其導入。如果 提供程序無法調整其進程以爲您提供正確的文件,則這是唯一的實際選項。這將 需要相當長的時間do.If的提供商支付的ETL 發展,這是不是他的最佳利益,財務上做到這一點。通常,一旦我向客戶解釋這種類型的東西是多麼昂貴,他們不僅僅是要修復他們的壞文件。
+0

謝謝你。我會問我的提供者,如果逗號在他們應該在的地方,或者我會改變分隔符。謝謝。 –

相關問題