Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
NCHAR 数据类型存储 Unicode 字符数据,最多可存储 32767 个字符。
NCHAR [ ( max-length ) ]
max-length 字符串的最大长度(以字符为单位)。该长度必须在 1 到 32767 范围内。如果未指定长度,则值为 1。
字符使用 UTF-8 编码存储。所需的最大存储字节数等于 max-length 的四倍。但是所需的实际存储字节数通常要少得多。
也可以将 NCHAR 指定为 NATIONAL CHAR 或 NATIONAL CHARACTER。无论使用哪种语法,都会将数据类型描述为 NCHAR。
当嵌入式 SQL 客户端对 NCHAR 列执行 DESCRIBE 时,返回的数据类型将为 DT_FIXCHAR 或 DT_NFIXCHAR,具体视是否调用了 db_change_nchar_charset 函数而定。
此外,当嵌入式 SQL 客户端对 NCHAR 列执行 DESCRIBE 时,返回的长度将是客户端的 NCHAR 字符集中的最大字节长度。例如,对于将西欧字符集 cp1252 用作 NCHAR 字符集的嵌入式 SQL 客户端,NCHAR(10) 列将被描述为长度是 10(10 个字符乘以每个字符的最大字节数一)的类型 DT_NFIXCHAR。对于使用日文字符集 cp932 的嵌入式 SQL 客户端,同一列将被描述为长度为 20(10 个字符乘以每个字符的最大字节数二)的类型 DT_NFIXCHAR。如果描述的长度返回的字节数超过 32767,则将该列描述为类型 DT_LONGNVARCHAR。
虽然 NCHAR 和 NVARCHAR 属于不同的类型,但它们在语义上是等同的。在 SQL Anywhere 中,NCHAR 是一种可变长度类型。在其它关系数据库管理系统中,NCHAR 是固定长度类型,将使用空白填充数据来使其达到 max-length 个存储字节。SQL Anywhere 不会使用空白填充所存储的字符数据。
对于 ODBC,将 NCHAR 描述为 SQL_WCHAR。
SQL/2008 国家字符支持是 SQL/2008 标准的功能 F421。