【问题标题】:SSIS package connection string error - "8.0;HDR=YES"SSIS 包连接字符串错误 - “8.0;HDR=YES”
【发布时间】:2014-09-27 20:37:13
【问题描述】:

我正在尝试从 SQL Server 安排导出到 Excel,我已使用 SSMS 中的导出向导并在完成导出之前选择了创建 SSIS 包的选项。

我已经创建了这个包,然后继续创建一个作业,添加了一个步骤并选择了我之前创建的包来运行这个作业。

但是在运行作业时,我收到一个错误,在查看作业历史记录时,该错误表示“8.0;HDR=YES”存在错误。

查看此连接字符串时,我可以看到错误是在扩展属性中生成的。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\DCTIS\DataFeed\DataFeedTest.xls;Extended Properties="EXCEL 8.0;HDR=YES";

我尝试了多种在线解决方案,从在扩展属性之前和之后添加额外的双引号,在 EXCEL 之前和 YES 之后删除双引号,在 Excel 之前和之后添加斜杠 \(我是假设是为了转义双引号字符),但没有任何效果。

所以,我宁愿尝试理解为什么会发生这个错误,因为我觉得它可以让我更接近解决方案,而不是仅仅对 ConnectionString 进行小“黑客攻击”。

非常感谢任何建议/解释!

【问题讨论】:

  • 运行 SSIS 包的凭据是什么,它是否有权访问 UNC 路径?是windows域帐号吗?
  • @Donal 很抱歉,但我不完全理解您指的是什么证书。创建 SSIS 包时我使用的唯一凭据是用于访问 SQL Server 的凭据(我可以在 Use Windows AuthenticationUse SQL Server Authentication 之间进行选择。
  • SSIS 包必须在特定的安全上下文下运行 - 在凭据下。例如,SQL Server 代理服务帐户。如果该帐户没有访问包含 Excel 文件的共享的权限 - 那么它将无法工作。

标签: sql-server excel ssis sql-server-2008-r2 connection-string


【解决方案1】:

查看此链接https://connectionstrings.com/ace-oledb-12-0/,检查“;”之间是否有一个空格和“HDR”,或尝试将提供程序更改为“Microsoft.ACE.OLEDB.12.0”而不是“Microsoft.Jet.OLEDB.4.0”

【讨论】:

  • 分号后面的空格不是必须的。如果它确实有效,但我太懒/讨厌使用 excel 进行测试,我会感到惊讶。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2013-02-11
  • 1970-01-01
相关资源
最近更新 更多