我正在尝试遍历目录中的 excel 文件并在 SSIS 中执行数据流任务。
For-Each 循环容器的设置似乎非常简单:
我映射到一个名为 FileNameTemp 的变量。
在 For-Each 循环内,我有一个数据流任务,其中源对象是一个带有 Excel 连接管理器的 Excel 源。我使用 FileName temp 设置 ExcelFileName 的文件名:
我的问题是每当我尝试运行包时,我都会收到以下错误:
[Connection manager "Excel Connection Manager"] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft Access Database Engine" Hresult: 0x80004005 Description: "Failure creating file.".
我找到了其他类似的帖子。我绝对有权写入此文件夹。如果我删除表达式并一遍又一遍地打开同一个文件,它就会起作用。我还在几乎每个级别上将 DelayValidation 设置为 true。
最佳答案
尝试从表达式定义中删除“C:...”。 For-Each 文件枚举器将提供完整路径。
将来您可以在数据流任务上设置断点并查看您在本地选项卡中设置的变量值。
关于ssis - 无法在 SSIS 2017 中的 excel 连接管理器上使用表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070558/