SQL Server: импортировать XML с веб-сервера? - PullRequest
3 голосов
/ 19 августа 2010

Есть ли в SQL Server поддержка для загрузки / чтения / передачи / импорта / извлечения / вставки XML непосредственно из веб-сервера в таблицу?

Притворись Я хочуполучить XML с веб-сервера, например:

SQL Server 2005 (и новее) имеет встроенную поддержку типов данных XML.В последние несколько месяцев интернет стал действительно популярным.Возможность поиска информации в Интернете может стать полезной и важной.

Поддерживает ли SQL Server такую ​​вещь?

Или мне нужно использовать (псевдокод):

XmlHttpRequest xml = new XmlHttpRequest("http://treasury.gov/ExchangeRates.xml");
SqlServerConnection conn = new SqlServerConnection("neptune", "sa", "password");
conn.Execute("INSERT INTO Exchange Rates (RatesXml) VALUES (%1)", xml.ResponseStream);

Редактировать один : поскольку Windows может сделать открытие файлов через http:

http://newegg.com/api/HardDrivePrices.xml

таким же прозрачным, как открытие файлов с локального жесткого диска:

c:\Windows\Temp\HardDrivePrices.xml

Я надеялся, что SQL Server сможет загружать XML из файла.Затем я просто заменяю filename на filenameUrl, , например, :

CREATE TABLE docs (pk INT PRIMARY KEY, xCol XML not null)

INSERT INTO docs 
SELECT 10, xCol
FROM    (SELECT * FROM OPENROWSET 
      (BULK 'http://www.bankofcanada.ca/stat/fx-xml.xml',
      SINGLE_BLOB) AS xCol) AS R(xCol)

За исключением того, что происходит сбой:

Невозможно выполнить массовую загрузку, посколькуфайл "http://www.bankofcanada.ca/stat/fx-xml.xml" не может быть открыт. Код ошибки операционной системы 123 (неверный синтаксис имени файла, имени каталога или метки тома.).

Ответы [ 2 ]

1 голос
/ 19 августа 2010

В этой статье описывается, как использовать веб-сервис из SQL Server 2005+: http://www.databasejournal.com/features/mssql/article.php/3821271/Calling-a-Web-Service-from-within-SQL-Server.htm

0 голосов
/ 19 августа 2010

Я не знаю, как выполнить это в ванильном T-SQL, вы можете получить некоторое преимущество, создав функцию CLR для загрузки контента.

...