gpt4 book ai didi

excel - SSIS2005 : Importing from multiple XL files/sheets with inconsistent metadata

转载 作者:行者123 更新时间:2023-12-04 20:35:26 24 4
gpt4 key购买 nike

提前感谢任何人可以提供的任何帮助,

(前言:我已经熟悉 TypeGuessRows 注册表调整(我将其设置为 0;XL 扫描整个列以确定数据类型)和 IMEX=1 扩展属性(我默认使用它))

我正在为客户开始一个正在进行的项目:

  • 客户发送 10 个 xlsx 文件,每年 1 个。
  • 大多数(如果不是全部)文件有 12 张……每月 1 张。
  • 所有文件中的所有工作表都具有完全相同的列数,列标题完全相同,顺序完全相同。
  • 客户很可能会在 future 3 年内定期发送新数据(希望采用相同的格式)。

  • 循环通过多个 XL 文件,然后循环通过多个 XL 表不是问题。我过去做过很多次。默认情况下,我的 XL 文件的 SSIS 模板是这样设置的。

    我遇到的问题是列的数据类型可以从一张纸到另一张纸改变。例如,在大多数工作表上,日期列:
  • 没有 NULL/空白日期
  • 所有日期格式为 m/d/yyyy
  • XL/SSIS 分配 日期 [DT_DATE] 数据类型

  • ...但是,在同一文件中的某些工作表上,同一日期列...
  • 没有 NULL/空白日期
  • 大多数日期格式为 m/d/yyyy
  • 一些日期格式为一般/数字(2002 年 11 月 15 日 = 37575)
  • XL/SSIS 分配 Unicode 字符串 [DT_WSTR] 数据类型

  • 如果我没记错的话,当我运行 SSIS 包时,当数据类型发生变化时它会抛出错误。

    是否可以强制输入列的数据类型( OLE DB 源高级编辑器 > 输入和输出属性 工作表 > 输入和输出 Pane > OLE DB 源输出 > 外部列 ) 转换为 unicode,这样当 XL/SSIS 想要更改数据类型时包不会出错?这将容纳所有当前文件和任何 future 文件,以防出现相同的不一致格式。

    或者我是否被迫:
  • 将所有常规/数字格式的日期更改为日期格式,以便我可以使用一个 SSIS 包导入
  • 将所有格式一致和格式不一致的工作表分成 2 个单独的组,以便使用 2 个不同的 SSIS 包导入

  • 再次感谢任何人提供的任何帮助,

    CTB

    最佳答案

    从一种数据类型切换到另一种数据类型似乎不会引发错误,只是一个警告......至少从 [DT_DATE] [DT_WSTR] 并返回。

    我无法强制 OLE DB 源 的传入列的数据类型,但我能够将传出列数据类型设置为 [DT_WSTR] ( OLE DB 输入源的高级编辑器 > > 0x1045和输出属性 表 > 输入和输出 Pane > OLE DB 源输出 > 输出列 )。这样,该列中的所有日期都被视为数据流中的 unicode 文本,无论其来源如何。

    这似乎奏效了。我只需要一个导入包来导入两种类型的工作表/文件。

    我希望这对将来的其他人有所帮助...

    关于excel - SSIS2005 : Importing from multiple XL files/sheets with inconsistent metadata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43218669/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com