首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

将截断字符串或二进制数据解决方案

2012-07-29 
将截断字符串或二进制数据居然在 like 时会提示这个错误,网上搜索遍了也不知道是何原因。先看代码,我最终在

将截断字符串或二进制数据
居然在 like 时会提示这个错误,网上搜索遍了也不知道是何原因。
先看代码,我最终在条件语句中 like 一个长字符串。

SQL code
DECLARE @pattern VARCHAR(max)--定义个字符串变量SELECT @pattern=REPLICATE(CONVERT(VARCHAR(max),'.'),20000)--赋值一个长度为2万的字符串SELECT LEN(@pattern),@pattern--输出,确实是2万个字符SELECT 1 WHERE @pattern LIKE REPLICATE(CONVERT(VARCHAR(max),'.'),20000)--出错


最终会报错

消息 8152,级别 16,状态 10,第 7 行
将截断字符串或二进制数据。


如果最后用等于就正常

SQL code
SELECT 1 WHERE @pattern = REPLICATE(CONVERT(VARCHAR(max),'.'),20000)-- =正常,like出错


难不成 like 有长度限制?可是我搜遍了也没这个说法啊。

哪位大侠碰到过,赐教。谢谢!



[解决办法]
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

参数
--------------------------------------------

match_expression 
任何有效的字符数据类型的表达式。 

pattern 
要在 match_expression 中搜索并且可以包括下列有效通配符的特定字符串。 pattern 的最大长度可达 8,000 字节。 

最大长度8000,所以要切断。
[解决办法]
楼上正解,
参考 http://msdn.microsoft.com/zh-cn/library/ms179859(v=sql.105).aspx
[解决办法]
恩, pattern 的最大长度不能超过 8,000 字节
[解决办法]
8000字节。非要比较的话 应该可以用CHECKSUM
[解决办法]
like 和 charindex 都有这个最大长度8000的限制。
[解决办法]
like 有 8000 字符长度限制

热点排行
Bad Request.