【发布时间】:2026-01-20 16:25:01
【问题描述】:
我有一个旧的 SQL Server 数据库,其中存储有数据类型为 text 的文件。
例如,.jpg 图像看起来像这样
89504E470D0A1A0A0000000D4948445200000A80000005F00806000000788B1B29000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000.........
我猜这是二进制?
如何将这些提取到文件中?
我尝试了各种提取方法,但都失败了,我猜这是因为数据类型是文本而不是 blob 或 varbinary。
【问题讨论】:
-
这能回答你的问题吗? Convert a BINARY stored as VARCHAR to BINARY
-
89504E470D0A1A0 .. 是 png 的标头十六进制签名。
select convert(varbinary(max), cast(cast('89504E470D0A1A0A00' as text) as varchar(max)), 2) -
@SMor 我试过了,但得到错误“不允许从数据类型文本到二进制的显式转换。”我需要先将其转换为 varchar 吗?
-
@lptr 哈哈,你说得对,我只是假设它是 jpg,因为另一列的文件名中包含以 .jpg 结尾的文件名......并且您的查询与 SMor 上面写的页面上的信息相结合我能够解决它,谢谢你们:D
标签: sql-server type-conversion varbinary