Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

jak wywołać serwis internetowy z t-sql

W tym celu należy użyć SQLCLR lub zewnętrznego programu. W SQL 20106 możesz używać R z TSQL, a w SQL 2017 możesz również używać Pythona. Rzadko jest dobrym pomysłem wykonywanie wywołań usług internetowych z TSQL, a jeśli to robisz, powinieneś zazwyczaj ciągnąć z kolejki. W takim przypadku możesz użyć zewnętrznego programu.

Procesy sp_oaxxx są stare, trudne w użyciu, mało znane, wymagają niebezpiecznej konfiguracji serwera itp.

Biorąc to pod uwagę, oto kod, który wykopałem z usenetu, który napisałem dawno, dawno temu:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje coś takiego jak kursor równoległy?

  2. Jak używać funkcji GROUP_CONCAT w MSSQL

  3. Transponuj zestaw wierszy jako kolumny w SQL Server 2000

  4. Prosta składnia:wiele ograniczeń w instrukcji Alter Table

  5. Napraw komunikat 8116 „Data typu danych argumentu jest nieprawidłowa dla argumentu 1 funkcji podciągu” w SQL Server