我有一个图像数据类型的列,一个软件出于某种原因用来存储文本。
我正在尝试将数据拉出并使用我在此处找到的许多示例将其转换为varchar。
目前我有
SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), BITS,2)) FROM V_SO_MTL_BINARY
问题是只出于某种原因只转换字符串中的第一个字符。如何从Image转换为Varchar,而不仅仅是第一个字符。
答案 0 :(得分:4)
您可能只需要NVARCHAR(MAX)
而不是VARCHAR(MAX)
,具体取决于最初插入数据的方式。
如果它实际上是nvarchar
那么典型的ASCII文本将有很多00
个字节。例如N'Some String'
存储为0x53006F006D006500200053007400720069006E006700
当转换回varchar
时,这些将被视为字符串终止空字符,因此只能看到第一个字符。
SELECT CAST(0x53006F006D006500200053007400720069006E006700 AS VARCHAR(30))
返回S