Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment éviter les limites sp_OACreate ?

malgré le sujet de votre message, je pense que le problème est probablement lié à sp_OAMethod et non à sp_OACreate lui-même.

également à mon humble avis, l'accès au Web à partir du code sql doit être évité à tout prix, mais ce n'est que mon avis car je n'aime pas l'idée d'avoir un SGBDR "surfer sur le Web". ^^

pour contourner la limitation de sp_OAMethod vous pouvez essayer d'élaborer une réponse présente sur msdn .

votre code devrait ressembler à ceci :

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

la solution nécessite une table temporaire avec une structure et un type de données appropriés pour stocker la valeur produite par la page distante et cela devrait vous permettre d'obtenir plus de 4k de données.