SQL Anywhere 服务器字符集转换,会在分析和执行之前将所有 SQL 语句转换为数据库字符集。此转换的副作用是,任何不能在 SQL 语句中转换为数据库字符集的字符会转换为替换字符。通过以下方法之一可以执行包含任意一个 Unicode 字符的 SQL 语句:
使用 UNISTR 函数指定 Unicode 字符值
使用主机变量指定 Unicode 字符值
将 UTF-8 用作数据库字符集
如果选择 UTF8BIN 作为 char 归类,则数据库字符集为 UTF-8。如果指定 UTF-8 编码,则 char 归类是 UCA。
Unicode 归类算法 (UCA) 提供高级的比较、排序和大小写转换,但会影响性能。虽然 UTF8BIN 既节省空间又快,但其排序顺序和比较是二进制的。如果在 SQL 语句中需要 Unicode 字符但不需要 UCA 的全部功能来进行排序和比较,则可将 char 归类指定为 UTF8BIN。仅在必要时通过 SORTKEY 和 COMPARE 函数来使用 UCA。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |