Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да избегнем ограниченията на sp_OACreate?

въпреки темата на публикацията ви, мисля, че проблемът вероятно е в sp_OAMethod, а не в самия sp_OACreate.

също IMHO достъпът до мрежата от sql код трябва да се избягва на всяка цена, но това е само моето мнение, защото не ми харесва идеята да имам RDBMS за „сърфиране в мрежата“. ^^

за да заобиколите ограничението на sp_OAMethod, можете да опитате да разработите отговор, присъстващ на msdn .

вашият код трябва да стане нещо подобно:

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

решението изисква временна таблица с подходяща структура и тип данни за съхраняване на стойността, произведена от отдалечената страница и това трябва да ви позволи да получите повече от 4k данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разбиране на SQL Server винаги криптиран

  2. SQL Server Trigger:Разбиране и алтернативи

  3. Мисли за изданията на SQL Server 2019

  4. Какъв формат трябва да бъдат началните и крайните LSN параметри на sys.fn_dblog?

  5. Неправилна сума, когато се присъединя към втора маса