【问题标题】:sp_OACreate error on SQL Server 2005SQL Server 2005 上的 sp_OACreate 错误
【发布时间】:2009-08-31 07:36:00
【问题描述】:

我有一个存储过程并尝试运行“sp_OACreate”,但出现以下消息:

消息 50000,级别 16,状态 1,过程 HTTP_REQUEST,第 26 行 MSXML2.XMLHttp.4.0 上的 sp_OACreate 失败

这是因为我设置了一个变量来获取 sp_OACreate 的返回值,如果返回值不为 0,则会引发上述错误。现在,我得到的返回值为“-6”,但我不知道为什么它正在发生吗?对此的任何帮助都会很好地帮助完成这项工作。

【问题讨论】:

  • 你能再贴一些代码吗?
  • DECLARE @xhr INT ,@result INT ,@httpStatus INT ,@msg VARCHAR(255) ALTER PROCEDURE [dbo].[HTTP_REQUEST] (@URI varchar(200), @response varchar(8000) OUT ) AS DECLARE @xhr INT ,@result INT ,@httpStatus INT ,@msg VARCHAR(255) EXEC @result = sp_OACreate 'MSXML2.ServerXMLHTTP.4.0', @xhr OUT IF @result 0 BEGIN RAISERROR('sp_OACreate on MSXML2.XMLHttp.4.0 failed', 16,1) RETURN END print 'attempting to open' + @URI EXEC @result = sp_OAMethod @xhr, 'open', NULL, 'GET', @URI, false IF @result 0 BEGIN RAISERROR('sp_OAMethod Open failed', 16,1) RETURN END
  • EXEC @result = sp_OACreate 'MSXML2.ServerXMLHTTP.4.0', @xhr OUT IF @result 0 BEGIN RAISERROR('sp_OACreate on MSXML2.XMLHttp.4.0 failed', 16,1) RETURN END

标签: sql sql-server


【解决方案1】:

DBA 是否已禁止使用此类内容?你可以毫无问题地执行其他 sp_OACreate 代码吗?

【讨论】:

    【解决方案2】:

    想法:

    启用了吗?

    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'Ole Automation Procedures',1;
    RECONFIGURE;
    

    你可以使用 SQL CLR 吗?即使在最好的情况下,也不推荐使用 sp_OA%。 SQL CLR 允许更高效、更轻松地完成工作。

    您是否尝试通过 sp_OA% 使用 CLR? It's not allowed, KB 32284

    【讨论】:

      【解决方案3】:

      发现出了什么问题。基本上是使用了错误版本的“MSXML2.ServerXMLHTTP”。正在调用 sp_OACreate 'MSXML2.ServerXMLHTTP.4.0' 当'MSXML2.ServerXMLHTTP.5.0' 或更高版本是正确的使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-17
        • 2011-01-08
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        相关资源
        最近更新 更多