在sybase环境 select CHAR_LENGTH(convert(varchar, someTextType)) from someTable
server return 30
sybase中如果不指定convert(varchar(n), sometextType) 那么n默认值是30,今天就吃了这苦头,发贴记下来
在where中如果么比较sometext 和varchar字段相等记住n一定么显示声明,n的大小是target column的varchar(n)
否则convert的最大长度只会是30
Sybase UserGuide 原文如下
[quote][size=18]Converting from one character type to another[/size]
When you convert from a multibyte character set to a single-byte character set,characters with no single-byte equivalent are converted to blanks.text columns can be explicitly converted to char, nchar, unichar, varchar,univarchar, or varchar. You are limited to the maximum length of the character datatypes, pagesize. If you do not specify the length, the converted value has a default length of 30 bytes.[/quote]
server return 30
sybase中如果不指定convert(varchar(n), sometextType) 那么n默认值是30,今天就吃了这苦头,发贴记下来
在where中如果么比较sometext 和varchar字段相等记住n一定么显示声明,n的大小是target column的varchar(n)
否则convert的最大长度只会是30
Sybase UserGuide 原文如下
[quote][size=18]Converting from one character type to another[/size]
When you convert from a multibyte character set to a single-byte character set,characters with no single-byte equivalent are converted to blanks.text columns can be explicitly converted to char, nchar, unichar, varchar,univarchar, or varchar. You are limited to the maximum length of the character datatypes, pagesize. If you do not specify the length, the converted value has a default length of 30 bytes.[/quote]
本文介绍了在Sybase环境中,如果不指定VARCHAR的长度,默认情况下长度为30字节的问题。特别强调了在进行类型转换时,如果未明确指定长度可能会导致数据截断的风险。
124

被折叠的 条评论
为什么被折叠?



