簡體   English   中英

將nvarchar(max)轉換為varbinary(max)

[英]Convert nvarchar(max) to varbinary(max)

有值表

report nvarchar(max) not null
description nvarchar(max) 

在存儲過程中,我想從表中選擇值,然后將其轉換為varbinary max。 我選:

select 
    CONVERT(varbinary(max), [report]) as [report], 
    ISNULL(CONVERT(varbinary(max), [description]), '') as [description]
from myTbl

但我得到一個錯誤:

不允許從數據類型varchar隱式轉換為varbinary(max)。 使用CONVERT函數運行此查詢。

請幫我解決這個問題

發生失敗是因為您將描述轉換為varbinary ,但隨后嘗試將所有null值varbinary轉換回varchar 您只需要在CONVERT移動ISNULL或將null轉換為二進制值時將轉換值更改即可。

在CONVERT中為ISNULL

SELECT 
    CONVERT(varbinary(MAX), report), 
    CONVERT(varbinary(max), ISNULL([description], '')) as [description]
FROM myTbl

正確的ISNULL值

SELECT 
    CONVERT(varbinary(MAX), report), 
    ISNULL(CONVERT(varbinary(max), [description]), 0x) as [description]
FROM myTbl

如果description為null,則兩個版本將產生相同的輸出0x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM