2016-09-28 16 views
2

我有一列图像数据类型,一段软件出于某种原因用于存储文本。将图像数据类型转换为Varchar

我想拉出数据并使用我在这里找到的许多示例将其转换为varchar。

目前我有

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

的问题是,只有把从字符串由于某种原因,第一个字符。我如何从Image转换为Varchar,而不仅仅是获取第一个字符。

+1

你可能只是需要的''而不是VARCHAR(MAX)'取决于如何将数据最初插入'NVARCHAR(MAX)。 –

+0

就是这样,将它作为答案发布,我会接受它。当然这很容易。 – AlexF11

回答

4

根据最初插入数据的方式,您可能只需要NVARCHAR(MAX)而不是VARCHAR(MAX)

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

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

SELECT CAST(0x53006F006D006500200053007400720069006E006700 AS VARCHAR(30)) 

返回S

相关问题