修改数据库 informix 的编码 table
Modify codification on a database informix table
我需要在 informix 11.7 中编写以下代码
例如甲骨文:
ALTER DATABASE `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
希望有人能帮助我。
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 的更多信息。
我需要在 informix 11.7 中编写以下代码
例如甲骨文:
ALTER DATABASE `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
希望有人能帮助我。
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 的更多信息。