sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan undgår man sp_OACreate grænser?

På trods af emnet for dit indlæg tror jeg, at problemet sandsynligvis er med sp_OAmethod og ikke sp_OACreate sig selv.

også IMHO adgang til internettet fra sql-kode bør undgås for enhver pris, men dette er bare min mening, fordi jeg ikke kan lide tanken om at have en RDBMS 'surfing på nettet'. ^^

for at omgå begrænsningen af ​​sp_OAmethod kan du prøve at udarbejde et svar på msdn .

din kode skulle blive noget som dette:

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 midlertidig tabel med passende struktur og datatype for at gemme værdien produceret af den eksterne side, og dette skulle give dig mulighed for at få mere end 4k data.



  1. Sletning af rækker med fremmednøglebegrænsninger

  2. NYHEDER:Ny Microsoft SQL Server Native Client 18 udgivet!

  3. PSQLEundtagelse:Kolonnenavnet clazz_ blev ikke fundet i dette resultatsæt

  4. SUM(underforespørgsel) i MYSQL