【问题标题】:Foreach Container to loop through Multiple Excel File to loadForeach 容器循环加载多个 Excel 文件
【发布时间】:2014-06-07 15:10:01
【问题描述】:

过去我有包,我在文件夹中循环多个文本文件并加载到 sql server 表中。

现在我被要求创建一个包,它将遍历文件夹中的多个 Excel 文件并将它们加载到 sql server 表中。

我通过以下步骤创建了这个包,假设它与我在其他包中循环多个平面文件的包没有太大不同。

  1. 添加了一个Execute Sql Task,截断我的临时表,一个简单的截断表语句。

  2. 添加了Foreach Loop Container。选择 Foreach File Enumerator 并创建了一个名为 File_Path 的变量,其数据类型为字符串。

  3. 添加了Data Flow Task

  4. 添加了Excel Data Source。并通过选择目标文件夹中的任何一个“Excel”文件来配置Excel Connection manager。 (此时配置正确,因为它没有显示任何红十字或交战消息。)

  5. 然后我选择了Excel File Connection Manager,并在Properties窗口Expressions下,选择了Connection String属性并使用了用户变量@User::File_Path

此时,Excel 数据源显示Red Cross,因为它需要进一步配置。

我尝试了一些方法,例如将 Data Access ModeTable name 更改为 Table Name or View Name Variable,并传递变量 @User::File_Path,但它给了我以下错误。

有人可以看看我的问题并提出建议以及如何解决这个问题吗?非常感谢任何建议或正确方向的指针。

谢谢。

【问题讨论】:

  • 所以您正在存储密码而不是使用 Windows 身份验证(正如我从您的 conn 管理器属性中看到的那样)。对吗?
  • 我认为它使用的是 Windows 身份验证,因为我没有更改任何默认设置。
  • 好吧,我不是 SSIS 专业人士,但在错误消息(根据您的帖子)中,除了十六进制错误代码之外,我没有看到具体错误。错误名称是什么?

标签: sql-server ssis sql-server-2008-r2


【解决方案1】:

您不应在 ConnectionString 属性上使用表达式,而应在 ExcelFilePath 属性上使用表达式。

【讨论】:

  • 我之前确实尝试过,但是因为我忘记将DelayValidation 设置为true,所以它不起作用。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
相关资源
最近更新 更多