首页 > 解决方案 > 从同一表中的 varchar(max) 列更新 varbinary(max) 列

问题描述

我有一个表volcards,其中包含photo_text[ varchar(max)] 和photo[ varbinary(max)] 列。

收集用户数据和照片的应用程序是 Filemaker (Claris),然后使用 ODBC 填充 SQL Server 字段。但显然,虽然它不能在 SQL Server 表中填充二进制字段,但它可以为照片填充 Base64 字段。从这些数据打印身份证的专有应用程序需要带有二进制字段的 SQL Server 表。它不能使用 Filemaker 数据库。

我的目标是能够运行一个命令,该命令将根据 photo_text 列中的 Base64 内容更新二进制列“照片”。

我找到了这个片段,它显示了我想要的结果,但我不知道如何将二进制结果写入 SQL 表的“照片”字段。

SELECT 
    volcards.photo_text, 
    CAST(N'' AS xml).value('xs:base64Binary(sql:column("volcards.photo_text"))', 'varbinary(max)') AS photo
FROM 
    volcards

谢谢

标签: sqltsqlbinarybase64sql-server-2017

解决方案


我的经验..我的解决方案只是在 FM 上使用导入功能。显示 varbinary


推荐阅读