将Image数据类型转换为Varchar

时间:2016-09-28 19:00:44

标签: sql-server-2008

我有一个图像数据类型的列,一个软件出于某种原因用来存储文本。

我正在尝试将数据拉出并使用我在此处找到的许多示例将其转换为varchar。

目前我有

SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), BITS,2)) FROM V_SO_MTL_BINARY

问题是只出于某种原因只转换字符串中的第一个字符。如何从Image转换为Varchar,而不仅仅是第一个字符。

1 个答案:

答案 0 :(得分:4)

您可能只需要NVARCHAR(MAX)而不是VARCHAR(MAX),具体取决于最初插入数据的方式。

如果它实际上是nvarchar那么典型的ASCII文本将有很多00个字节。例如N'Some String'存储为0x53006F006D006500200053007400720069006E006700

当转换回varchar时,这些将被视为字符串终止空字符,因此只能看到第一个字符。

SELECT CAST(0x53006F006D006500200053007400720069006E006700 AS VARCHAR(30)) 

返回S