【问题标题】:Issue with Flat file connection manager平面文件连接管理器的问题
【发布时间】:2011-06-08 06:07:25
【问题描述】:

我已经构建了一个 SSIS 包,用于从 Flat Files 中的数据更新 Oracle 数据库。该文件包含 4 列,其中部分如下所示:

Airwaybill No Shipper's Ref.编号 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

这些平面文件是制表符分隔的。我的包遍历它们并一一执行。

我的问题是我需要在平面文件连接管理器中的每个文件的列信息上按重置列,而不是只执行该文件,否则下一行数据将与最后一列合并并出错

请帮助我,因为如果我无法自动化我的包。

所有这些文本文件都是通过将它们保存为文本分隔文件从 Excel 工作表生成的。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    我建议执行以下步骤来验证平面文件中的数据确实是制表符分隔的,并以您在 SSIS 中配置的行分隔符结尾。

    1. 在您的机器上安装软件Notepad++。 Notepad++ download url.

    2. 将 Excel 文件保存为制表符分隔文件后,在Notepad++ 中打开制表符分隔文件。

    3. 在 Notepad++ 中,选择菜单 View --> Show Symbol --> Show All Characters 如屏幕截图 #1 所示。

    4. Orange arrows 代表 tabs。如果您注意到橙色的点/句点 (.),则表示 spaces。 CR 黑底文字代表Carriage Return。 LF 黑底文字代表Line Feed。

    5. 确保文件如屏幕截图 #2 所示。

    6. 如果文件看起来正确,则在 SSIS 包的文件连接管理器中确保行分隔符为 {CR}{LF},列分隔符为 Tab {t}强>。请参阅屏幕截图 #3。

    希望对您有所帮助。

    屏幕截图 #1:

    屏幕截图 #2:

    截图#3:

    【讨论】:

    • 感谢 Siva,它会有所帮助...但是当 excel 文件转换为文本制表符分隔时,除了这 4 列之外的所有额外列都将被计算如下所示:
    • 感谢 Siva,它会有所帮助...但是当 excel 文件转换为以制表符分隔的文本时,除了这 4 列之外的所有额外列都将被计算在内,并且 CRLF 在最后一列之后。告诉我如何只取我找到的列,CFLF 应该在我的最后一列之后.....
    • 在连接管理器中我找不到选择特定列的选项...在平面文件源中有..但我希望连接管理器本身只读取前四列并在最后一列结束...
    猜你喜欢
    • 2013-06-12
    • 2014-12-27
    • 2016-01-27
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    相关资源
    最近更新 更多