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







网友评论