sql-server - 将从 Web url 检索到的图像作为 varbinary 列插入 SQL Server 数据库
问题描述
我有一个需要存储在 SQL Server 数据库中的图像 url 链接。我需要在 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 编码和解码
https://medium.com/falafel-software/t-sql-easy-base64-encoding-and-decoding-872ad184bd7e
推荐阅读
- python - VTK 无法创建自己的地图 vtk.vtkDataSetMapper - Python
- r - R:计算已经开始但未结束的事件数 - 如果在日期时间范围内,则计数
- c - 如何使用 head 代替结构节点?
- android - SDK 版本 28 中 CardView 和 RecyclerView 的依赖项
- javascript - WordPress 中的 PHP:JavaScript 中的 Echo 短代码
- python - 将 XML 转换为字典/JSON
- c - 错误:函数“getch”的参数太多
- python - 如何去除这张图片的噪点?
- ruby-on-rails - 是否可以动态调用属性?
- javascript - Angular App Module 问题:platformBrowserDynamic().bootstrapModule(AppModule);