2016-09-28 110 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

相關問題