sql限制字符串的长度
Ⅰ sqlserver中 varchar 最大长度是多少
最大长度8000,用max可以存储达到2G。
例如:
varchar [ ( n | max) ]
可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。
在某些情况下,前台应用对过长的字串是无法正确处理的,比如一些表格控制,比如C++定义的字符串变量。
(1)sql限制字符串的长度扩展阅读:
注意事项
存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。
1、编码长度限制
字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。
2、行长度限制
导致实际应用中varchar长度限制的是一个行定义的长度。 MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。
Ⅱ oracle动态执行SQL字符串,字符串最大的长度是多少
定义成varchar2的话最大的长度就是 32767,最好不要超过32000
Ⅲ insertselectvarchar长度限制
insertselectvarchar长度限制是10。
当varchar超过限制长度时,1.如果当前的SQL模式为宽松模式,那么将会按照从前往后的顺序,对字符串进行截断,并提示一个警告;2.如果当前的SQL模式为严格模式,那么将会报出一个错误。
从SQLServer2005开始,引入了varchar(max)/nvarchar(max)数据类型,表中可不使用LOB数据类型而突破单列8000/4000字符的限制,动态SQL也可以拼接得更长;但查看这类字符的时候,在某些地方,字符长度的限制仍然存在,比如:
单列:SSMS里返回的列值。
动态SQL:print命令打印字符时。