希望这对某人来说是一个快速的。.我有一个SQL Server 2012(我认为),其中一张表使我有些困惑。
列类型为nvarchar(max)。我发现了几个记录,由于某种原因,这些记录在该列中空白了 - 即使我知道其中有数据。我只是看不到它!
例如,sql命令
select
contentbody,
datalength(contentbody),
len(contentbody),
rtrim(contentbody)
from
ContentSource
where
contentid=4022
这显示了以下结果
contentbody = (blank)
datalength = 58
len = 57
rtrim = (blank)
因此,我可以从len()和dataLength()函数中看到那里有东西。但是我根本无法访问它。我从我们的.NET(4.5)网站和SQL Server Management Studio中看到了这个问题。
有什么想法吗?我尝试过cast()和convert(),但它总是返回空白。感谢您的任何建议!
您在字符是的评论中说。
0x00480061007600650020006900200067006F0074002000610020006E006500770020006C006F0076006500200063006F006D0069006E00670020
这看起来应该是
0x480061007600650020006900200067006F0074002000610020006E006500770020006C006F0076006500200063006F006D0069006E006700
是
SELECT CAST(N'Have i got a new love coming' AS VARBINARY(100));
每对字节的顺序已与应有的相反。
即。0x0048
代替0x4800
等。
它可能包含不可打印的字符。您可以尝试将结果转换为字节数组,然后查看调试器中的字符代码。