如何从 SQL Server 中的 URL 读取 JSON 数据

本文关键字:URL 读取 JSON 数据 中的 Server SQL | 更新日期: 2023-09-27 18:34:46

我正在尝试使用以下代码从SQL Server 2008中的URL读取JSON数据:

DECLARE @temp table (RowNum int, DATA NVARCHAR(max))
DECLARE @url VARCHAR(MAX),
@win INT,
@hr INT,
@Text VARCHAR(8000),
@RowID int,
@Status smallint,
@Accuracy tinyint
Set @url = 'http://www.jsonprovider.com/api/json/2020'
EXEC @hr = sp_OACreate 'WinHttp.WinHttpRequest.5.1', @win OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Open', NULL, 'GET', @url, 'false'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAMethod @win, 'Send'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OAGetProperty @win, 'ResponseText', @Text OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr = sp_OADestroy @win 
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 
select  @Text  --<< Result

我得到了我的结果。

问题是在SQL Server中获取此结果的过程需要7秒,但是在C#应用程序的正常调用和Web浏览器中的调用中,我在0.06秒内得到结果。

我正在寻找一种解决方案来改进我的代码以获得快速的结果。

如何从 SQL Server 中的 URL 读取 JSON 数据

这是"仅仅因为你可以,并不意味着你应该"的一个例子。

SQL Server不是这项工作的正确工具;它的工作原理令人惊叹。如果你想加快速度,请放入一个c#或php程序,让SQL服务器完成它想要的工作。处理 jSON 响应不是其中之一。

E.J. 解释得很好,我同意他的看法。

我想补充一点,如果你想把所有内容都保存在数据库代码中,你可以尝试基本上用C#编写但在SQL Server中工作的CLR过程。

有关如何在 C# 中执行此操作的详细信息,请参阅这些链接

带有帖子的
HTTP 请求如何使用 Visual C# 发出 GET 请求