【发布时间】:2019-03-02 02:01:31
【问题描述】:
我想看看是否可以将数据从 REST 调用导入到 MSSQL 到 URL。我想将来将此代码重用于假设的存储过程。这只是想成为一个概念证明。
此 URL 包含一些可用于我的实验的 JSON:
http://api.plos.org/search?q=title:DNA
我用 Postman 检查 URL 是否返回一些 JSON:
我现在关注this guide,它告诉我如何构建调用,这是我的代码:
DECLARE @Object AS INT;
DECLARE @ResponseText AS nvarchar(max);
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'GET','http://api.plos.org/search?q=title:DNA', 'false'
EXEC sp_OAMethod @Object, 'send'
EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
SELECT @ResponseText
EXEC sp_OADestroy @Object
但不幸的是,它返回给我一个NULL 列。
我做错了什么?
有没有人通过 SSMS 进行 REST 调用?
【问题讨论】:
-
请不要那样做!尤其是 COM 和 Windows 98 附带的古老的 MSXML2 类。要么使用 HttpClient 在 C# 中创建单独的应用程序,要么使用 C# 脚本组件在 SSIS 中创建自定义源。
-
谢谢@PanagiotisKanavos,请理解这是概念证明。我只想知道为什么我无法检索 JSON。当然是一种不好的方法,没有人应该这样做
-
顺便说一句,我应该用什么来代替
MSXML2? -
@PanagiotisKanavos,我找到了
MSXML2的替代品,它是WinHttp.WinHttpRequest.5.1,它直接来自 2018 年 -
并非如此。问题是您首先使用的是 sp_OAxxx,而没有必要这样做。您仍然需要检查响应的状态码。
标签: json sql-server rest tsql ssms