SQL 作业失败,因为驱动程序无效

Posted

技术标签:

【中文标题】SQL 作业失败,因为驱动程序无效【英文标题】:SQL Job failed because driver is not valid 【发布时间】:2014-06-19 15:04:34 【问题描述】:

我有一个 SSIS 包,我想在 SQL Server 2008 的作业中安排它,该包由它自己完美运行,但是在作业中执行时它失败,我收到以下错误消息:

作为用户执行:XXXXXXX\SYSTEM。执行适用于 64 位的 Microsoft (R) SQL Server 版本 10.0.4000.0 的包实用程序 版权所有 (C) Microsoft Corp 1984-2005。版权所有。 开始时间:上午 10:48:09 错误:18/06/2014 10:48:09.42 代码:0xC0047062 来源:数据流任务 ADO NET 源 [1] 说明:System.Data.Odbc.OdbcException:错误 [HY024] [Microsoft] [ODBC Microsoft Access Driver] '(unknown)' 不是有效路径。 确保路径名拼写正确并且您已连接到文件所在的服务器。 错误 [IM006] [Microsoft] [ODBC 驱动程序管理器] SQLSetConnectAttr 错误错误 [HY024] 驱动程序 [Microsoft] [ODBC Microsoft Access Driver] '(unknown)' 不是有效路径。 确保路径名拼写正确并且您已连接到文件所在的服务器。 在 System.Data.Odbc.OdbcConnection.HandleError (OdbcHandle hrHandle, RetCode retcode) 在 System.Data.Odbc.OdbcConnectionHandle .. ctor(OdbcConnection 连接,建立 OdbcConnectionString,OdbcEnvironmentHandle environmentHandle) 在 System.Data.Odbc.OdbcConnectionOpen .. ctor (OdbcConnection outerConnection, OdbcConnectionString ConnectionOptions) 在 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions 选项,对象 poolGroupProviderInfo,DBConnectionPool 池,DbConnection owningObject) 在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection, DbConnectionPoolGroup poolGroup) 在 System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory ConnectionFactory) 在 System.Data.Odbc.OdbcConnection.Open () 在 Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(AssemblyQualifiedName 字符串、字符串 connStr、对象事务) Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection at (Object pTransaction) Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections at(对象事务) 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 包装器,对象事务) 结束错误错误:18/06/2014 10:48:09.42 代码:0xC0047017 来源:数据流任务 SSIS.Pipeline 说明:验证组件“ADO NET Source”时出错 (1);返回错误代码 0x80131937。 结束错误错误:18/06/2014 10:48:09.42 代码:0xC004700C 来源:数据流任务 SSIS.Pipeline 描述:无法验证一个或多个组件。 结束错误错误:18/06/2014 10:48:09.42 代码:0xC0024107 来源:数据流任务 描述:任务验证期间出现错误。 结束 DTExec 错误:包执行返回 DTSER_FAILURE (1)。 开始时间:上午 10:48:09 结束时间:上午 10:48:09 经过时间:0.219 秒。 包执行失败。无法执行该步骤。

该程序包的作用是从另一台服务器的网络驱动器 (Z:) 内的 Microsoft Access 数据库中获取数据。并将数据传递到 SQL 数据库中的表中。

我所在的驱动程序和服务器是 64 位的,我尝试使用作业属性中的“32 位运行时”选项运行它,但我得到了相同的消息,我真的不知道该怎么做做,我在谷歌上跟踪了代码错误,但我没有找到任何解决方案。据我所知,不应该有任何权限问题,因为在我尝试创建此作业的服务器中,只有一个用户,它是管理员,并且还有由同一用户创建的其他作业,所以我相信不需要代理,但这是唯一使用 Access ODBC 的代理。

如果有什么需要检查的,请告诉我。我真的不知道该怎么办,我已经尝试让这个东西工作了将近一个月,但一无所获。因此,如果有人可以帮助我,我将不胜感激。

【问题讨论】:

Z: Drive 是否映射到部署包的服务器上? 尝试使用网络驱动器完全限定路径,例如 IP \\10.50.1.2\sharedFolder\File 或服务器名称 \\server\share\file_path 你到底是什么意思?我可以独立运行该程序包,并且 Z: 驱动器与所有其他驱动器一起列在 Windows 资源管理器中。如何准确地确保 Z 驱动器已映射? 是 Z:驱动器属于您的本地硬盘驱动器或通过网络映射到任何共享文件夹 @Vikramsinh Shinde 我在哪里使用该路径?我使用 ODBC 管理器创建了与 Access 数据库的连接,并且能够使用 SSIS 包中的该连接成功连接。我不必直接输入任何路径。 【参考方案1】:

创建 ODBC 系统源后,您需要将网络驱动器替换为完整路径,请参阅此link

【讨论】:

以上是关于SQL 作业失败,因为驱动程序无效的主要内容,如果未能解决你的问题,请参考以下文章

SQL 维护作业失败:“无效的对象名称‘Confluence.sys.Partitions’。将数据库上下文更改为‘主’

SQL作业sql ssis作业错误:“由于错误0xC0010014导致程序包无法加载,这在CPackage :: LoadFROMXML失败时会发生

XML 中的无效字符使 Datastage 作业失败

GITLAB CI错误加载密钥“/dev/fd/63”:格式无效错误:作业失败:退出代码1

使用 Spark 作业服务器的 Spark SQL 作业中的错误“此上下文的作业类型无效”

Cloud Run 完成,但 Cloud Scheduler 认为该作业已失败