none
Rescatar datos de una página web con SQL SERVER RRS feed

  • Pregunta

  • Estimados,

    quisiera saber si se puede, mediante un procedimiento almacenado o query acceder a los datos de una página que genera un XML como resultado al colocarla en la URL. Este XLM contiene los valores de las distintas monedas que necesito cargar en mi tabla. la URL es "http://indicadoresdeldia.cl/webservice/indicadores.xml", ahí están los datos que necesito recatar desde sql server.

    agradecido de antemano.


    Martin

    martes, 25 de octubre de 2016 19:49

Respuestas

  • Bueno, el proceso tiene dos pasos: primero hay que descargar el contenido de la página usando el protocolo http, y segundo hay que analizar y trocear el xml obtenido para separar de él os valores deseados. La segunda parte se puede hacer con SQL Server, la primera requiere auxiliarse de alguna otra herramienta independiente de SQL Server.

    Para descargar el XML, podrías instalar en SQL Server un procedimiento de CLR programado con algún lenguaje de .Net tal como C#, y dentro de ese procedimiento usar WebClient.DownloadString para descargar el contenido, y luego devolverlo como SqlString, que Sql server reconocerá como nvarchar una vez que le hayas instalado la dll compilada (tendrás que darle el permiso external_access para que pueda transmitir la petición http).

    Pero en lugar de eso, yo recomendaría por simplicidad hacer esto desde código cliente, en el programa que vaya a invocar al SQL Server. Descarga el contenido desde ese programa y pásaselo al SQL Server en un nvarchar.

    La segunda parte, decodificar el XML, sí que se puede apoyar en las funcionalidades de manipulación de XML que tiene SQL Server. Una vez que hayas metido el dato nvarchar en una variable de tipo XML, puedes usar la función nodes() en combinación con selectores XPATH para extraer del xml los valores deseados en forma de tabla.

    miércoles, 26 de octubre de 2016 6:16