【问题标题】:Import JSON data into SQL from a REST API URL从 REST API URL 将 JSON 数据导入 SQL
【发布时间】:2021-08-24 07:57:38
【问题描述】:

我想将 JSON 数据从 REST API URL 直接下载到 SQL Server。

我目前在浏览器中打开 URL 并将 JSON 数据复制到我保存在本地的 .json 文件中,然后使用以下代码导入。如果我可以从 SQL Server 中查询 URL 并返回相同的结果,效率会更高。

SELECT BulkColumn
FROM OPENROWSET(BULK'C:\Users\taariq.AADDSGCX\Desktop\JSON\data.json', SINGLE_BLOB) JSON;

但我想要用 URL 替换本地源的东西。示例:

SELECT BulkColumn
FROM OPENROWSET (BULK (OPENURL("https://restapidata.com/mydata"), SINGLE_CLOB) JSON;

【问题讨论】:

  • SQL Server 对直接访问 Internet 没有很好的支持,除非您计算 Azure SQL 以及它可以使用 blob 存储的各种方式(但这并不完全相同)。您可以通过sp_oacreate 使用MSXML 将它一起破解,但我强烈建议您不要这样做,因为错误处理非常糟糕,并且以不会泄漏资源的方式进行操作很棘手。如果您只想自动执行此类下载,请查看 Power Automate、PowerShell 或您选择的任何其他脚本语言,但将 HTTP 访问保留在客户端。
  • 你最好从 Powershell 等中推动它。从数据库引擎访问网络是一个非常糟糕的主意。你可以做类似$json = Invoke-WebRequest ....; Invoke-SqlCmd ....

标签: json sql-server


【解决方案1】:

从技术上讲,您可以使用Common Language Runtime Integration,例如编写将请求 API URL 并返回其响应数据的存储过程。

前段时间我在这里提出了以下问题 - Consuming web-service using SQL CLR stored procedure not find default endpoint while debugging with VS2010。我想你会在那里找到一些重要的信息,供你阅读 cmets 中的讨论。

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2016-09-25
    • 1970-01-01
    • 2019-07-15
    • 2021-03-24
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多