これには、SQLCLR または外部プログラムを使用する必要があります。 SQL 20106 では TSQL から R を使用でき、SQL 2017 では Python も使用できます。 TSQL から Web サービスの呼び出しを行うことはめったにありません。そうする場合は、通常、キューからプルする必要があります。その場合、外部プログラムを使用できます。
sp_oaxxx プロシージャは古く、使いにくく、ほとんど知られていない、危険なサーバー構成が必要などです。
そうは言っても、かなり前に書いた usenet から掘り起こしたコードを次に示します。
create procedure http_get( @sUrl varchar(200), @response varchar(8000) out) As begin Declare @obj int ,@hr int ,@status int ,@msg varchar(255) exec @hr = sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT if @hr < 0 begin Raiserror('sp_OACreate MSXML2.ServerXMLHttp failed', 16,1) return 1 end exec @hr = sp_OAMethod @obj, 'Open', NULL, 'GET', @sUrl, false if @hr <0 begin set @msg = 'sp_OAMethod Open failed' goto eh end exec @hr = sp_OAMethod @obj, 'send' if @hr <0 begin set @msg = 'sp_OAMethod Send failed' goto eh end exec @hr = sp_OAGetProperty @obj, 'status', @status OUT if @hr <0 begin set @msg = 'sp_OAMethod read status failed' goto eh end if @status <> 200 begin set @msg = 'sp_OAMethod http status ' + str(@status) goto eh end exec @hr = sp_OAGetProperty @obj, 'responseText', @response OUT if @hr <0 begin set @msg = 'sp_OAMethod read response failed' goto eh end exec @hr = sp_OADestroy @obj return 0 eh: exec @hr = sp_OADestroy @obj Raiserror(@msg, 16, 1) return 1 end
プレ>