Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将从web url检索的图像作为varbinary列插入SQL Server数据库_Sql Server_Tsql_Varbinary - Fatal编程技术网

Sql server 将从web url检索的图像作为varbinary列插入SQL Server数据库

Sql server 将从web url检索的图像作为varbinary列插入SQL Server数据库,sql-server,tsql,varbinary,Sql Server,Tsql,Varbinary,我有一个图像url链接,需要存储在SQL Server数据库中。我需要在SQL Server或SSIS中编写一些东西来从URL获取该图像 这里显示的代码的问题是响应文本是nvarchar(max),它应该是VarBinary(max) 这只是从数据库调用http请求的一个想法。我认为解决方案是在SSIS中的脚本组件中完成,我是正确的还是有人有更好的想法 DECLARE @status int DECLARE @responseText AS TABLE (responseText nvarcha

我有一个图像url链接,需要存储在SQL Server数据库中。我需要在SQL Server或SSIS中编写一些东西来从URL获取该图像

这里显示的代码的问题是响应文本是
nvarchar(max)
,它应该是
VarBinary(max)

这只是从数据库调用http请求的一个想法。我认为解决方案是在SSIS中的脚本组件中完成,我是正确的还是有人有更好的想法

DECLARE @status int
DECLARE @responseText AS TABLE (responseText nvarchar(max))
DECLARE @res AS Int;
DECLARE @url AS nvarchar(1000) = 'https://agriapp.azurewebsites.net/barcode/qr?id=LL-12345'

EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @res OUT
EXEC sp_OAMethod @res, 'open', NULL, 'GET',@url,'false'
EXEC sp_OAMethod @res, 'send'
EXEC sp_OAGetProperty @res, 'status', @status OUT

INSERT INTO @ResponseText (ResponseText) 
    EXEC sp_OAGetProperty @res, 'responseText'

EXEC sp_OADestroy @res

SELECT 
    @status, 
    CONVERT(VARBINARY(MAX),responseText) responseText 
FROM @responseText

我相信您在responseText中得到的是base64编码,您需要对其进行解码,或者将其从base64转换为varbinary。查看此博客帖子:

T-SQL:简单的Base64编码和解码

查看此链接: