LoadFromSQLServer方法遇到过OLE DB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LoadFromSQLServer方法遇到过OLE DB相关的知识,希望对你有一定的参考价值。
我有这个错误:
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
答案
请尝试以下方法:
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
另一答案
正如OP所提到的,服务器路由(对于参数/SERVER
)应该使用反斜杠而不是常见的斜杠。显示的错误对于这种情况有点误导,因为登录超时是因为服务器路径不正确。
所以改变
/SERVER "hqgmdw02/dw_dev"
对于
/SERVER "hqgmdw02dw_dev"
以上是关于LoadFromSQLServer方法遇到过OLE DB的主要内容,如果未能解决你的问题,请参考以下文章
我如何知道我的 MFC 应用程序是不是使用 COM / OLE?
SAP 下载EXCEL DOI使用OLE功能(DOI获取OLE对象)
win7 delphi 调用 语音控件TSpVoice Speak 方法报 OLE error 8004503A 错 怎么解决?