gpt4 book ai didi

sql-server - 通过HTTP GET读取TSQL中的二进制数据

转载 作者:可可西里 更新时间:2023-11-01 16:56:36 34 4
gpt4 key购买 nike

我需要通过 HTTP URL 将一些图像导出到我的 SQL Server。

我找到了关于导出 XML 数据的文章:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
Declare @Url as Varchar(MAX);
select @Url = 'http://somexml.com/xmlfile.xml'

Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Exec sp_OADestroy @Object

--load into Xml
Declare @XmlResponse as xml;
select @ResponseText

此外,在研究过程中,我发现我应该为二进制数据使用 ADODB.Stream。但我无法弄清楚如何使用上述方法读取此对象。有没有一种方法可以在纯 TSQL 中读取二进制数据,或者我应该为此使用 CLR?

非常感谢您的帮助。

最佳答案

我和你有同样的问题,找到了怎么做!这是我执行此操作的 sql(它支持检索文本和二进制数据):

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO

declare @xmlObject as int
declare @responseText as varchar(max)
declare @responseBody as varbinary(max)
declare @status as int
declare @url as varchar(2048)

select @url = 'http://someurl.com/someimage.jpg'

exec sp_OACreate 'MSXML2.XMLHTTP', @xmlObject OUT;
exec sp_OAMethod @xmlObject, 'open', NULL, 'get', @url, 'false'
exec sp_OAMethod @xmlObject, 'send'
exec sp_OAMethod @xmlObject, 'status', @status OUTPUT
exec sp_OAMethod @xmlObject, 'responsetext', @responseText OUTPUT
declare @responseTable as table ( body varbinary(max) )
INSERT INTO @responseTable exec sp_OAMethod @xmlObject, 'responsebody'
exec sp_OADestroy @xmlObject

select @status
select @responseText
select @responseBody=body from @responseTable
select @responseBody

希望这对外面的人有帮助:)

关于sql-server - 通过HTTP GET读取TSQL中的二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898771/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com