我有一个执行SSIS包的批处理文件,此SSIS包从服务器(z:unit)中的Access数据库获取数据。然后将数据传递给SQL Server。当我手动(双击)或在命令行上执行批处理文件时,它工作正常。
但是我希望在Windows 7的任务计划程序中安排此批处理文件。我可以创建任务但是当它与任务计划程序一起执行时它会失败。我的批处理文件如下:
DTEXEC /FILE "F:\Projects\Complains\SSIS Complains\Get_Complains.dtsx" /DECRYPT XXXXX /CHECKPOINTING OFF /REPORTING EWCDI >F:\Logs\Log_Get_Complains.txt
我得到的错误信息如下:
Utilidad de ejecuci¢de de paquetes de Microsoft(R)SQL Server Versi¢n 10.0.1600.22 para 32 bits版权所有(C)Microsoft Corp 1984-2005。 Reservados todos los derechos。
Iniciado:09:37:29 a.m. Informaci¢n:2014-06-06 09:37:29.48 C¢digo: 0x4004300A Origen:Tarea Flujo de datos SSIS.Pipeline
Descripci¢n:Se est iniciando la fase de validaci¢n。 Fin de informaci¢n错误:2014-06-06 09:37:30.25 C¢digo:0xC0047062
Origen:Tarea Flujo de datos Origen de ADO NET 1 [1433]
Descripci¢n:System.Data.Odbc.OdbcException:ERROR [HY024] [微软] [Controlador ODBC Microsoft Access]'(desconocido)'没有es una ruta de acceso v lida。 Aseg£rese de que la ruta est escrita correctamente y que est conectado al servidor donde se encuentra el 档案馆。错误[IM006] [微软] [Administrador de controladores ODBC]错误de SQLSetConnectAttr del controlador错误[HY024] [微软] [Controlador ODBC Microsoft Access]'(desconocido)'没有es una ruta de acceso v lida。 Aseg£rese de que la ruta est escrita correctamente y que est conectado al servidor donde se encuentra el 档案馆。 en System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RetCode retcode)en System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection连接, OdbcConnectionString constr,OdbcEnvironmentHandle environmentHandle) en System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection,OdbcConnectionString connectionOptions)zh System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options,Object poolGroupProviderInfo,DbConnectionPool池, DbConnection owningObject)en System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection owningConnection,DbConnectionPoolGroup poolGroup)en System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection owningConnection)en System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory)en System.Data.Odbc.OdbcConnection.Open()zh Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(字符串 assemblyQualifiedName,String connStr,Object transaction)en Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection(对象 pTransaction)en Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections(对象 交易)en Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 包装器,对象事务)Fin de error错误:2014-06-06 09:37:30.25 C¢digo:0xC0047017 Origen:Tarea Flujo de datos SSIS.Pipeline Descripci¢n:错误en la validaci¢n de componente “Origen de ADO NET 1”(1433); se devolvi¢el c¢digo de error 0x80131937。 Fin de error错误:2014-06-06 09:37:30.25 C¢digo: 0xC004700C Origen:Tarea Flujo de datos SSIS.Pipeline
Descripci¢n:错误的有效成分uno o m s componentes。 Fin de error 错误:2014-06-06 09:37:30.25 C¢digo:0xC0024107 Origen:Tarea Flujo de datos Descripci¢n:Se produjeron errores al validar la 利亚。 Fin de error DTExec:la ejecuci¢n del paquete devolvi¢ DTSER_FAILURE(1)。 Iniciado:上午09:37:29 Finalizado:上午09:37:30 Transcurrido:1.077 segundos
我知道这是西班牙语,但我希望这不会成为问题。
我知道错误几乎解释了自己,它无法找到或连接到Access ODBC,因为它无法根据第一个错误代码对其进行验证:
0x4004300A
我已经在Microsoft支持页面上检查了此错误代码,并将ValidateExternalMetadata属性更改为False,但它没有执行任何操作。其他错误是从第一个错误中衍生出来的。
我已经检查了ODBC数据源管理员(odbcad32.exe)中的ODBC以查看驱动程序是否在系统DSN中,并且它们是,用户DSN中没有驱动程序,我还检查了它们是否是32位,他们是,这里的一切都运行ant 32.所以,根据我的理解,不应该有任何权限问题,因为所有的ODBC都在系统DSN中。
在Task Scheduler中,我创建了以SYSTEM身份运行的任务,调度程序中的所有任务都以SYSTEM身份运行,并赋予它最高权限。
所以,如果有人能帮助我,我会很感激。
答案 0 :(得分:1)
我谨慎地依靠连接管理器中的Windows凭据,这些凭据在手动运行时可用,但在任务调度程序运行时却不可用。
您可能会更好地将程序包部署到SQL Server并运行SQL作业,我不确定是否有更简单的解决方法,我认为即使这样,您也需要创建{{3 }}
在此处逐步找到:SQL Server Agent Proxy