我正在查询数据库,有效负载数据存储在 Microsoft SQL Server 2019 的图像列中。 我想阅读此列的实际文本值。
我写了以下查询:
SELECT CAST(PAYLOAD AS NVARCHAR(MAX)) FROM MY_TABLE
它给了我错误: 不允许从数据类型 image 到 nvarchar(max) 的显式转换。
它似乎不起作用,我正在寻找一种方法将此值转换为选择查询中的文本。
您可以使用双重转换:
SELECT CONVERT(NVARCHAR(MAX), CAST(PAYLOAD AS VARBINARY(MAX))) AS PAYLOAD_TEXT FROM MY_TABLE
整个例子:
-- Create sample database
CREATE DATABASE img
GO
-- Create sample table with image type
CREATE TABLE MY_TABLE (
PAYLOAD IMAGE
)
GO
-- An example value as image
INSERT INTO MY_TABLE(PAYLOAD)
VALUES(0xFF)
GO
--Resolution for your problem
SELECT CONVERT(NVARCHAR(MAX), CAST(PAYLOAD AS VARBINARY(MAX))) AS PAYLOAD_TEXT FROM MY_TABLE
注意:图像类型已弃用。