【问题标题】:LoadFromSQLServer method has encountered OLE DBLoadFromSQLServer 方法遇到了 OLE DB
【发布时间】:2012-09-06 20:15:55
【问题描述】:

我有这个错误:

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 

【问题讨论】:

    标签: sql-server dtexec


    【解决方案1】:

    尝试以下方法:

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

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

    确保将运行 SSIS 包的用户具有足够的权限。我认为您在 SQL Server 代理中的 SSIS 下运行,或者您可以手动运行它。运行 SQL 代理的服务帐户和您的帐户必须具有执行作业的权限。请看Error in executing SSIS package through Agent

    【讨论】:

    • 谢谢但我发现这个问题是一个非常愚蠢的错误,但错误错误地指向了权限。问题是实例的斜杠“hqgmdw02\dw_dev”不正确,并且一些引号是错误的。底线是 DTEXEC 可能会给出误导性的错误消息。因此,请关注语法,然后才是实际的错误消息。
    【解决方案2】:

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

    所以改变

    /SERVER "hqgmdw02/dw_dev"
    

    /SERVER "hqgmdw02\dw_dev"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多