2

我有这个错误:

LoadFromSQLServer 方法遇到 OLE DB 错误代码 0x80004005(登录超时已过期)。发出的 SQL 语句失败

这是我的代码,有什么问题?

DECLARE @FileName VARCHAR(50); 
DECLARE @VendorID VARCHAR(50); 
DECLARE @sql VARCHAR(2000); 
DECLARE @Local_File_FullPath VARCHAR(100);   

SET @FileName = 'Extgt_skinny_file.txt.pgp' 
Set @VendorID = 'ET' 

Select @Local_File_FullPath = dw03_path  FROM GMAC_META.dbo.VENDOR_XFER_METADATA where vendor_id = @VendorID 

SET @sql = 'dtexec /SQL "\EMAP_FTP_XFER_CHECK" /SET \Package.Variables[User::FileName].Properties[Value];"' 
+ @FileName+'" /SET \Package.Variables[Local_File_FullPath].Properties[Value];' 
+ @Local_File_FullPath+' /SERVER "hqgmdw02/dw_dev"   /CHECKPOINTING OFF /REPORTING E'


 exec xp_cmdshell @sql 
4

2 回答 2

0

尝试以下操作:

GRANT exec ON xp_cmdshell TO '<somelogin>'. 请参考xp_cmdshell (Transact-SQL)

检查您是否在 64 位计算机上使用 32 位 DTExec。

确保将运行 SSIS 包的用户具有足够的权限。我认为您在 SQL Server 代理中的 SSIS 下运行,或者您可以手动运行它。运行 SQL 代理的服务帐户和您的帐户必须具有执行作业的权限。请参阅通过代理执行 SSIS 包时出错

于 2012-09-06T20:55:57.717 回答
0

正如 OP 所提到的,服务器路由(用于参数/SERVER)应该使用反斜杠而不是普通斜杠。在这种情况下,显示的错误有点误导,因为登录超时是因为服务器路径不正确。

所以改变

/SERVER "hqgmdw02/dw_dev"

为了

/SERVER "hqgmdw02\dw_dev"
于 2018-05-10T09:41:49.787 回答