My Oracle Support Banner

如何选择或更改数据库字符集 (NLS_CHARACTERSET) (Doc ID 1525394.1)

Last updated on APRIL 04, 2019

适用于:

Oracle Database - Enterprise Edition - 版本 8.1.7.4 和更高版本
Oracle Database - Standard Edition - 版本 8.1.7.4 和更高版本
本文档所含信息适用于所有平台

用途

本文章概述了更改数据库字符集或在具有不同 NLS_CHARACTERSET 的数据库之间导出/导入前进行检查的方法。

当前的 NLS_CHARACTERSET 在 NLS_DATABASE_PARAMETERS 中可以看到。

conn / as sysdba
select value from NLS_DATABASE_PARAMETERS where parameter='NLS_CHARACTERSET';

NLS_CHARACTERSET(“字符集”)定义了“普通”的 CHAR, VARCHAR2, LONG 以及 CLOB 字段的编码。

NLS_NCHAR_CHARACTERSET(“国家字符集”)定义了 NCHAR, NVARCHAR2 以及 NCLOB 字段的编码。从 9i 以后都是 Unicode 编码。如果没有使用 NCHAR, NVARCHAR2 以及 NCLOB 字段,那么 NLS_NCHAR_CHARACTERSET 的设置不会被使用或者说不相关。详见 <Note 276914.1> The National Character Set in Oracle 9i , 10g and 11g

现在仍然有数据库管理员尝试通过修改 props$ 来更改 NLS_CHARACTERSET NLS_NCHAR_CHARACTERSET。我们不支持使用这种方法因为这将会损坏您的数据库。这是破坏整个数据集的最直接方式之一。如果您已经做了这个操作,那么第一件事就是从备份中完全恢复数据库.如果没有做任何备份,那么Oracle Support 可以尝试帮助您进行恢复 Oracle 不能保证可以恢复数据也不能保证恢复后的数据完全正确。我们会要求您执行完全导出操作,并重新建立整个数据库。
 
切勿更新 props$

详细信息

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


文档内容
用途
适用范围
详细信息
 A) 数据库字符集 (NLS_CHARACTERSET)
 B) 选择新数据库字符集
 C) 在8i, 9i, 10g 和 11g 中更改数据库字符集。
 C1) 运行 Oracle Application (EBS) 或 PeopleSoft 系统的 数据库字符集转换
 C2) 在8i, 9i, 10g 和 11g 中使用“export/import”操作(在 10g 及更高版本中使用Datapump操作)。
 C3) 组合使用 ALTER DATABASE CHARACTER SET(8i、9i)/ CSALTER(10g 和 11g)与 “export/import” 操作
 C4) 在 8i、9i、10g 和 11g 中将字符集转换为 Unicode (UTF8/AL32UTF8) 的分步指南(包括导出/导入操作)
 C5) Physical / Logical Standby 数据库如何操作?
 C6) 如何将数据库从 AL32UTF8/UTF8 改回另外的字符集?
 D) 在 Oracle 12c 中将数据库字符集修改为 Unicode(UTF8/AL32UTF8)
 E) 12c Multitenant Container Databases (CDB) 和 Pluggable Databases (PDB) 中字符集的限制:
 F) 其他阅读材料
参考

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.