sql >> Databáze >  >> RDS >> Sqlserver

Jak se vyhnout limitům sp_OACreate?

navzdory předmětu vašeho příspěvku si myslím, že problém je pravděpodobně u sp_OAMethod a ne u samotného sp_OACreate.

také IMHO přístupu na web z kódu SQL je třeba se za každou cenu vyhnout, ale toto je jen můj názor, protože se mi nelíbí myšlenka mít RDBMS „surfování po webu“. ^^

Chcete-li obejít omezení sp_OAMethod, můžete zkusit vypracovat odpověď na msdn .

váš kód by měl vypadat nějak takto:

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

řešení vyžaduje dočasnou tabulku s vhodnou strukturou a datovým typem pro uložení hodnoty vytvořené vzdálenou stránkou, což by vám mělo umožnit získat více než 4 kB dat.



  1. Jak optimalizovat databázi webových stránek

  2. Volání funkce pl/sql v Javě?

  3. Vytvořte uživatele z řetězcových proměnných v bloku PL/SQL

  4. Získejte jeden ze záznamů v duplicitních záznamech