NCHAR 数据类型存储 Unicode 字符数据,最多可存储 8191 个字符。
NCHAR [ ( max-length ) ]
max-length 字符串的最大长度(以字符为单位)。该长度必须在 1 到 8191 范围内。如果未指定长度,则值为 1。
字符使用 UTF-8 编码存储。所需的最大存储字节数为 max-length 的四倍,尽管所需的实际存储字节数通常要少得多。
也可以将 NCHAR 指定为 NATIONAL CHAR 或 NATIONAL CHARACTER。无论使用哪种语法,都会将数据类型描述为 NCHAR。
当嵌入式 SQL 客户端对 NCHAR 列执行 DESCRIBE 时,返回的数据类型将为 DT_FIXCHAR 或 DT_NFIXCHAR,具体视是否调用了 db_change_nchar_charset 函数而定。请参见db_change_nchar_charset 函数。
此外,当嵌入式 SQL 客户端对 NCHAR 列执行 DESCRIBE 时,返回的长度将是客户端的 NCHAR 字符集中的最大字节长度。例如,对于将西欧字符集 cp1252 用作 NCHAR 字符集的嵌入式 SQL 客户端,NCHAR(10) 列将被描述为长度是 10(10 个字符乘以每个字符的最大字节数一)的类型 DT_NFIXCHAR。对于使用日文字符集 cp932 的嵌入式 SQL 客户端,同一列将被描述为长度为 20(10 个字符乘以每个字符的最大字节数二)的类型 DT_NFIXCHAR。
虽然 NCHAR 和 NVARCHAR 属于不同的类型,但它们在语义上是等同的。在 SQL Anywhere 中,NCHAR 是一种可变长度类型。在其它关系数据库管理系统中,NCHAR 是固定长度类型,将使用空白填充数据来使其达到 max-length 个存储字节。SQL Anywhere 不会使用空白填充所存储的字符数据。
对于 ODBC,视是否使用 odbc_distingish_char_and_varchar 选项而定,将 NCHAR 描述为 SQL_WCHAR 或 SQL_WVARCHAR。请参见odbc_distinguish_char_and_varchar 选项 [数据库]。
SQL/2003 服务商扩充。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |