【问题标题】:Querying web services JSON from SQL server从 SQL Server 查询 Web 服务 JSON
【发布时间】:2019-04-18 20:28:02
【问题描述】:

我正在关注this 教程。我从教程中创建了 GetWebService 存储过程,并且那里的示例工作正常

  DECLARE @response NVARCHAR(MAX) 
  EXECUTE dbo.GetWebService 'http://headers.jsontest.com/', @response OUTPUT
  SELECT  @response

但是,当我尝试运行它时:

DECLARE @response NVARCHAR(MAX) 
  EXECUTE dbo.GetWebService 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo', @response OUTPUT
  SELECT  @response

失败了

消息 50000,级别 16,状态 1,过程 dbo.GetWebService,第 48 行 [批处理开始第 0 行] sp_OAMethod 读取响应失败

我该如何解决?

【问题讨论】:

    标签: json sql-server


    【解决方案1】:

    不要遵循该教程。您应该使用 CLR 存储过程从 SQL Server 进行 Web 服务调用。那里有很多样品。

    如果您打算使用已弃用且具有潜在危险的 sp_OAxxx 存储过程,请不要遵循该教程。它有问题。在我的答案中尝试实现:Set option 9 in SQL Server stored procedure using WinHttp.WinHttpRequest.5.1 for TLS 1.2

    【讨论】:

    • 谢谢。效果很好。另外,我猜想在这种情况下使用 SQL 服务器效率不高。如果我想将此类示例存储在 SQL Server 表中,您能否分享一些好的资源来研究如何做得更好,也许 C# 或 Java 会更有效。
    • 此方法与任何方法一样有效。更多,可能是因为它使用了非托管的内置 Windows 组件。问题是复杂性、内存安全等。在 SQL Server 之外运行的 C# 或 PowerShell,甚至 Python 等将是首选方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2023-03-06
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多