即使用select @@maxpagesize查到的數(shù)字。
除非設(shè)定string_rtruncation on,Adaptive Server將條目截斷到指定列的長度而不加警告或出現(xiàn)錯誤信息。
2、數(shù)據(jù)庫從cp850遷移到utf-8環(huán)境之后,原來的獲取當(dāng)事人名稱的存儲過程返回的結(jié)果有誤,即有名稱被截取的問題,如下代碼: -- 去掉末尾的頓號
set @MC = substring(@MC, 1, len(@MC) - 2)
set @MC = substring(@MC, 1, len(@MC) - 2)
比如說當(dāng)事人名稱為“張三、李四、”,在原來的cp850庫返回的結(jié)果是“張三、李四。但是升級到utf-8之后,返回的就是“張三、李”。
主要是cp850字符集,一個漢字占兩個字節(jié),而升級到utf-8之后就占三個字節(jié)了,所以這里的減2就不正確了。
執(zhí)行如下的腳本
declare @MC varchar(100)
declare @length int
set @MC = '張三、李四、'
set @length = len(@MC)
print '%1!', @length
set @MC = substring(@MC, 1, len(@MC) - len('、'))
print '%1!', @MC
在cp850下,print '%1!', @length打印的長度為12,而在utf-8下則返回的是6。當(dāng)然print '%1!', @MC打印的結(jié)果都是"張三、李四"declare @length int
set @MC = '張三、李四、'
set @length = len(@MC)
print '%1!', @length
set @MC = substring(@MC, 1, len(@MC) - len('、'))
print '%1!', @MC
所以最終把代碼改為如下就正確了,字符集就不會影響結(jié)果。
-- 去掉末尾的頓號
set @MC = substring(@MC, 1, len(@MC) - len('、'))
set @MC = substring(@MC, 1, len(@MC) - len('、'))






