Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 数据类型 » 字符数据类型

 

VARCHAR 数据类型

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 兼容。字符长度语义是服务商扩充。