修改数据库informix表的编码

时间:2015-09-28 22:51:34

标签: sql database informix

我需要在informix 11.7中编写以下代码

示例ORACLE:

ALTER DATABASE  `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

我希望有人可以帮助我。

1 个答案:

答案 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的更多信息。