Anda harus menggunakan SQLCLR atau program eksternal untuk ini. Di SQL 20106 Anda bisa menggunakan R dari TSQL, dan di SQL 2017 Anda juga bisa menggunakan Python. Jarang ada ide bagus untuk membuat panggilan layanan web dari TSQL, dan jika Anda melakukannya, Anda biasanya harus menarik diri dari antrian. Dalam hal ini Anda dapat menggunakan program eksternal.
Proses sp_oaxxx sudah tua, sulit digunakan, sedikit diketahui, memerlukan konfigurasi server yang berbahaya, dll.
Karena itu, inilah beberapa kode yang saya gali dari usenet yang saya tulis sejak lama:
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