VARCHAR 数据类型存储字符数据,最多可存储 32767 个字节。
VARCHAR [ ( max-length [ CHAR | CHARACTER ] ) ]
max-length 字符串的最大长度。如果使用字节长度语义(不 将 CHAR 或 CHARACTER 指定为长度的一部分),则长度将以字节为单位,并且长度必须在 1 到 32767 的范围内。如果未指定长度,则值为 1。
如果使用字符长度语义(将 CHAR 或 CHARACTER 指定为长度的一部分),则长度将以字符为单位,并且必须指定 max-length。使用字符长度语义时,长度与数据库编码中字符最大长度的乘积不得超过 32767 个字节。下表显示所支持字符集类型的最大长度:
字符集 | VARCHAR 的最大长度 |
---|---|
单字节字符集 | 32767 个字符 |
双字节字符集 | 16383 个字符 |
UTF-8 | 8191 个字符 |
可以将多字节字符存储为 VARCHAR 类型,但声明的长度指的是字节长度而不是字符长度。
也可以将 VARCHAR 指定为 CHAR VARYING 或 CHARACTER VARYING。无论使用哪种语法,都会将数据类型描述为 VARCHAR。
视所使用的接口而定,当客户端应用程序对某列执行 DESCRIBE 时,使用字符长度语义可能会影响返回的值。例如,当某个嵌入式 SQL 客户端应用程序对某列执行通过字节长度语义声明的 DESCRIBE 时,所返回的长度为指定的字节长度。因此,VARCHAR(10) 列将被描述为长度为 10 个字节的类型 DT_VARCHAR。不过,当嵌入式 SQL 客户端应用程序对某列执行通过字符长度语义声明的 DESCRIBE 时,所返回的长度将是在客户端的 CHAR 字符集中指定的最大字节长度。例如,对于将 UTF-8 用作 CHAR 字符集的客户端,VARCHAR(10 CHAR) 列将被描述为长度是 40 个字节的类型 DT_VARCHAR(10 个字符乘以每个字符的最大字节数四)。
SQL/2003 与 SQL/2003 兼容。字符长度语义是服务商扩充。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |