[英]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转换为二进制值时将转换值更改即可。
SELECT
CONVERT(varbinary(MAX), report),
CONVERT(varbinary(max), ISNULL([description], '')) as [description]
FROM myTbl
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.