【问题标题】:Converting long string to binary data in transact-sql fails在 transact-sql 中将长字符串转换为二进制数据失败
【发布时间】:2014-02-21 10:47:50
【问题描述】:

我想将一个长字符串(稍后是 json)转换为二进制数据,以在 Service Broker 中将其作为消息发送。现在我对字符串长度有疑问,因为它在几个字符后被剪掉了。

declare @astring varbinary(MAX) = CONVERT(varbinary(MAX), 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.');

当我将它转换回 varchar 时

convert(varchar(MAX), @longerstring)

结果是 126 个字符:“Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliq”。

我也尝试了 varchar(8000),看不到改进..我做错了什么?谢谢。

【问题讨论】:

  • 我在执行select convert(varchar(MAX), @astring)的tsql中没有问题

标签: sql tsql converter varchar varbinary


【解决方案1】:

我刚刚在 SQL Server Management Studio 2008 R2 中运行了以下命令,它按预期工作(592 个字符):

declare @astring varbinary(MAX) = CONVERT(varbinary(MAX), 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.');

print convert(varchar(MAX), @astring)

请注意,我将 @longerstring 更改为 @astring 作为其中的一部分,因为我不知道 @longerstring 来自哪里。

【讨论】:

  • 对我感到羞耻.. 我刚刚遇到显示问题将近一个小时。谢谢,您的回复很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 2016-06-02
  • 2018-04-24
  • 2014-11-07
  • 2021-02-24
相关资源
最近更新 更多