【发布时间】: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