sql >> Databasteknik >  >> RDS >> Sqlserver

Hur undviker man sp_OACreate-gränser?

trots ämnet för ditt inlägg tror jag att problemet troligen beror på sp_OAmethod och inte sp_OACreate sig själv.

även IMHO-åtkomst till webben från sql-kod bör undvikas till varje pris, men detta är bara min åsikt eftersom jag inte gillar idén med en RDBMS som "surfar på webben". ^^

för att kringgå begränsningen av sp_OAmethod kan du försöka utarbeta ett svar som finns på msdn .

din kod bör bli ungefär så här:

Declare @Object as Int; 
Declare @ResponseText as Varchar(8000); 
Declare @Url as Varchar(MAX);

set @Url = 'http://mysite.ru/cgi-bin/my_xml.cgi'

Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; 
Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false' 
Exec sp_OAMethod @Object, 'send' 
--Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT 

INSERT #temptable ( appropriatefield )
EXEC @Result = sp_OAGetProperty @Obj, 'YourPropertyName' 

Exec sp_OADestroy @Object

lösningen kräver en temporär tabell med lämplig struktur och datatyp för att lagra värdet som produceras av fjärrsidan och detta bör tillåta dig att få mer än 4k data.



  1. Uppdatera en rad, men infoga om rad inte finns i kodantändaren

  2. Optimera mysql-frågan för att använda index på en Bitwise where-klausul

  3. Mysql DateTime-grupp med 15 minuter

  4. SQLite JSON_ARRAY_LENGTH()