2011-06-08 61 views
0

我必須建立一個SSIS包,從它在平板Files.This文件傳來的數據更新Oracle數據庫中包含4列如下所示其中的一部分:問題與平面文件連接管理器

空運單沒有託運人的參考。號PU日期快遞名
43737729582 30035024201100 13/05/2011 bluedart
43737729571 30035065201100 13/05/2011 bluedart
43737729560 30035029201100 13/05/2011 bluedart
43737729416 30033277201100 13/05/2011 bluedart
43737729420 30033297201100 13/05/2011 bluedart

這些平面文件是製表符分隔。我的程序包遍歷它們並逐個執行它們。

我的問題是,我需要在平面文件連接管理器中的每個文件的列信息上按Reset列,而不僅僅是該文件正在執行,否則下一行數據會與最後一列關聯並出現錯誤

請幫助我,因爲如果這我不能自動化我的包。

所有這些文本文件都是從Excel工作表生成的,並將它們保存爲文本定界文件。

回答

0

我會建議通過以下步驟來驗證平面文件中的數據確實是製表符分隔的,並以您在SSIS中配置的行分隔符結束。

  1. 在您的機器上安裝軟件Notepad++Notepad++ download url

  2. 將Excel文件另存爲製表符分隔文件後,打開Notepad++中的製表符分隔文件。

  3. 在記事本++,選擇菜單View - >Show Symbol - >Show All Characters如圖截圖#。

  4. Orange arrows代表tabs。如果您注意到橙色的點/句點(.),那些代表spacesCR黑色背景中的文字代表Carriage ReturnLF黑色背景中的文字代表Line Feed

  5. 確保該文件看起來如屏幕截圖#中所示。

  6. 如果文件看起來是正確的,那麼在SSIS包的文件連接管理器確保該行分隔符是{CR}{LF}和列分隔符是Tab {t}。請參閱屏幕截圖#。

希望有所幫助。

截圖#1:

1

截圖#2:

2

截圖#3:

3

+0

謝謝Siva,它會幫助...但是當excel文件轉換爲文本標籤分隔符時,除了這4列以外的所有額外列都會被計數,如下所示: – 2011-06-09 05:06:07

+0

感謝Siva,它會幫助...但是,當excel文件轉換爲文本製表符分隔時,除了這4列以外的所有額外列都將被計數,並且CRLF將在最後一列之後。請告訴我如何才能只取得我找到的列和CFLF應該是在我的最後一欄..... – 2011-06-09 05:29:24

+0

在連接管理器我沒有找到一個選項來選擇特定的列......在平面文件源中有..但我希望連接管理器自己只讀第四列並添加最後一列末尾的行分隔符... – 2011-06-10 05:22:25