我需要在informix 11.7中编写以下代码
示例ORACLE:
ALTER DATABASE `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
我希望有人可以帮助我。
答案 0 :(得分:1)
Informix不支持ALTER DATABASE语句,也不允许您指定将以声明方式使用的代码集。
您可以通过将环境变量DB_LOCALE
设置为合适的值来设置将在创建数据库时使用的代码集(并且通常也应设置CLIENT_LOCALE
)。例如:
DB_LOCALE=en_US.utf8 CLIENT_LOCALE=en_US.utf8 dbaccess - - <<EOF
CREATE DATABASE database_name WITH BUFFERED LOG;
EOF
我使用dbaccess
只是因为它是命令行界面;可以通过任何适当的界面设置环境并创建数据库。
另一方面,我认为没有办法指定不区分大小写的排序规则。使用Informix,它也将成为语言环境的一部分,因此必须是en_us.utf8@ci
这样的语言环境才能实现。我不认为这样的语言环境是由Informix分发的。
Informix支持SET COLLATION语句,该语句可用于更改运行时使用的排序规则。要小心:优化器只能对使用正确(当前)语言环境构建的字符数据使用索引,因此使用SET COLLATION会对查询性能产生负面影响。
您可以在IBM Information Center for Informix中找到有关Global Language Support或GLS的更多信息。