oracle和i18n的支持

时间:2010-10-26 02:27:22

标签: oracle localization internationalization

我们需要在同一个db模式中存储不同语言的char数据。 Oracle 10g是我们的数据库。我希望有人已经这样做会给我更具体的指示,说明如何启用oracle 10g db。我们只需要在db级别存储来自多个语言环境的数据以及整理(希望所有主要数据库都支持这一点)。我们不需要格式化日期,日期时间,数字,货币等。

我阅读了一些关于oracle的i18n支持的文档,但有点混淆了他们的许多nls_ *属性。我应该使用nls_lang还是nls_language或NLS_CHARACTERSET .....

1 个答案:

答案 0 :(得分:6)

假设您从头开始构建数据库,而不是尝试改进引入其他问题的现有数据库。

在数据库中,您需要确保数据库字符集支持您要存储的所有字符。据推测,这意味着将数据库的NLS_CHARACTERSET设置为AL32UTF8。就个人而言,我更喜欢将NLS_LENGTH_SEMANTICS设置为CHAR。这改变了VARCHAR2(n)的默认行为,以分配n个存储字符而不是n个字节。由于AL32UTF8是一个可变长度的字符集,因此使用字节语义通常会产生问题,因为您必须声明3倍长的字段,最后不同的用户才能在同一字段中输入不同数量的字符。 / p>

NLS_LANG是一个客户端设置。这标识了客户端要请求将数据转换为的字符集。这通常取决于操作系统的代码页。