美文网首页
SQL Server定时调用指定WebApi接口

SQL Server定时调用指定WebApi接口

作者: 秒怂的哈士奇爱吃西瓜 | 来源:发表于2025-07-10 15:20 被阅读0次

1. 开启 SQL Server 的 OLE Automation Procedures 功能

在 SQL Server 中,需要先开启 OLE Automation Procedures 功能,才能使用 sp_OACreate、sp_OAMethod 等扩展存储过程来调用 WebApi 接口。

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

创建存储过程调用 WebApi 接口

创建一个存储过程,用于调用指定的 WebApi 接口

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Proc_CallWebApi]
    @ApiUrl VARCHAR(2000), -- API 请求地址
    @RequestType VARCHAR(5), -- 请求类型:POST 或 GET
    @ResponseText NVARCHAR(4000) OUTPUT -- 返回的响应文本
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @data VARCHAR(8000);
    SET @data = '';
    DECLARE @Object AS INT;
    EXEC sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
    EXEC sp_OAMethod @Object, 'open', NULL, @RequestType, @ApiUrl, 'false';
    IF @RequestType = 'POST'
    BEGIN
        EXEC sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type', 'application/json;charset=UTF-8';
        -- 如果需要添加其他请求头,可以在这里继续添加
    END
    EXEC sp_OAMethod @Object, 'send', NULL, @data;
    EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT;
    EXEC sp_OADestroy @Object;
END
GO

相关文章

网友评论

      本文标题:SQL Server定时调用指定WebApi接口

      本文链接:https://www.haomeiwen.com/subject/fumbijtx.html