ff8*_*nia 5 t-sql sql-server json sql-server-2008 asp.net-web-api2
某些遗留SQL存储过程(SQL Server 2008)需要从我提供的Web服务(Web Api 2)获取一些信息.
如何调用端点(在GET中),检索数据(JSON格式)并转换临时表中接收的数据以在sproc的其余部分中使用?
谢谢
最好的方法是创建Used-defined CLR函数并从那里调用Web API,这样你就可以使用C#和.Net库的全部功能来进行Web调用并解析Json.互联网上有大量关于此的信息.例如:https://blogs.msdn.microsoft.com/spike/2010/11/25/how-to-consume-a-web-service-from-within-sql-server-using-sql-clr/.这与WebAPI无关,但您可以从那里获得想法.
请注意,它需要将带有CLR功能的自定义程序集部署到SQL Server.
编辑:
有一种方法可以使用OLE自动化在TSQL中执行此操作.在这里看一个例子,但它更难,记录更少,你可能会花时间发明自己的自行车,而不是使用CLR功能的现成解决方案.
无需编写CLR即可轻松完成:
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Code Snippet
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
'http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT', --Your Web Service Url (invoked)
'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19089 次 |
| 最近记录: |