繁体   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