

# RDS for Oracle 字符集
<a name="Appendix.OracleCharacterSets"></a>

RDS for Oracle 支持两种类型的字符集：数据库字符集和国家/地区字符集。

## 数据库字符集
<a name="Appendix.OracleCharacterSets.db-character-set"></a>

Oracle 数据库字符集用于 `CHAR`、`VARCHAR2` 和 `CLOB` 数据类型中。数据库还将此字符集用于元数据，如表名、列名和 SQL 语句。Oracle 数据库字符集通常称为数据库字符集。

您可以在创建数据库实例时设置该字符集。创建数据库后，无法更改数据库字符集。

### 支持的数据库字符集
<a name="Appendix.OracleCharacterSets.db-character-set.supported"></a>

下表列出了 Amazon RDS 中支持的 Oracle 数据库字符集。您可结合使用本表中的值和 AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令的 `--character-set-name` 参数，或 Amazon RDS API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作的 `CharacterSetName` 参数。

**注意**  
CDB 的字符集始终是 AL32UTF8。您只能为 PDB 设置不同的字符集。


****  

| 值 | 描述 | 
| --- | --- | 
| AL32UTF8 | Unicode 5.0 UTF-8 通用字符集 (默认) | 
| AR8ISO8859P6 | ISO 8859-6 拉丁语/阿拉伯语 | 
| AR8MSWIN1256 | Microsoft Windows 代码页 1256 8 位拉丁语/阿拉伯语 | 
| BLT8ISO8859P13 | ISO 8859-13 波罗的海文 | 
| BLT8MSWIN1257 | Microsoft Windows 代码页 1257 8 位波罗的海文 | 
| CL8ISO8859P5 | ISO 88559-5 拉丁语/西里尔语 | 
| CL8MSWIN1251 | Microsoft Windows 代码页 1251 8 位拉丁语/西里尔语 | 
| EE8ISO8859P2 | ISO 8859-2 东欧国家语言 | 
| EL8ISO8859P7 | ISO 8859-7 拉丁语/希腊语 | 
| EE8MSWIN1250 | Microsoft Windows 代码页 1250 8 位东欧国家语言 | 
| EL8MSWIN1253 | Microsoft Windows 代码页 1253 8 位拉丁语/希腊语 | 
| IW8ISO8859P8 | ISO 8859-8 拉丁语/希伯来语 | 
| IW8MSWIN1255 | Microsoft Windows 代码页 1255 8 位拉丁语/希伯来语 | 
| JA16EUC | EUC 24 位日语 | 
| JA16EUCTILDE | 除波浪短划线和波形符至 Unicode 及来自 Unicode 的映射外，与 JA16EUC 相同 | 
| JA16SJIS | Shift-JIS 16 位日语 | 
| JA16SJISTILDE | 除波浪短划线和波形符至 Unicode 及来自 Unicode 的映射外，与 JA16SJIS 相同 | 
| KO16MSWIN949 | Microsoft Windows 代码页 949 韩语 | 
| NE8ISO8859P10 | ISO 8859-10 北欧国家语言 | 
| NEE8ISO8859P4 | ISO 8859-4 北欧和东北欧国家语言 | 
| TH8TISASCII | 泰国工业标准 620-2533-ASCII 8 位 | 
| TR8MSWIN1254 | Microsoft Windows 代码页 1254 8 位土耳其语 | 
| US7ASCII | ASCII 7 位美国英语 | 
| UTF8 | Unicode 3.0 UTF-8 通用字符集 (符合 CESU-8 标准) | 
| VN8MSWIN1258 | Microsoft Windows 代码页 1258 8 位越南语 | 
| WE8ISO8859P1 | 西欧 8 位 ISO 8859 第 1 部分 | 
| WE8ISO8859P15 | ISO 8859-15 西欧国家语言 | 
| WE8ISO8859P9 | ISO 8859-9 西欧国家语言和土耳其语 | 
| WE8MSWIN1252 | Microsoft Windows 代码页 1252 8 位西欧国家语言 | 
| ZHS16GBK | GBK 16 位简体中文 | 
| ZHT16HKSCS | Microsoft Windows 代码页 950，香港附属字符集 HKSCS-2001。字符集转换基于 3.0。 | 
| ZHT16MSWIN950 | Microsoft Windows 代码页 950 繁体中文 | 
| ZHT32EUC | EUC 32 位繁体中文 | 

### NLS\_LANG 环境变量
<a name="Appendix.OracleCharacterSets.db-character-set.nls_lang"></a>

区域设置 是一组满足语言和文化要求的信息，这些信息对应于给定的语言和国家/地区。在客户端环境中设置 NLS\_LANG 环境变量，是为 Oracle 指定区域设置行为最简单的方法。该变量可设置客户端应用程序和数据库服务器所使用的语言和地区。它还指示客户端字符集，该字符集对应于客户端应用程序输入或显示的数据的字符集。有关 NLS\_LANG 和字符集的更多信息，请参阅 Oracle 文档中的[什么是字符集或代码页？](http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410570)。

### NLS 初始化参数
<a name="Appendix.OracleCharacterSets.db-character-set.nls_parameters"></a>

您还可在 Amazon RDS 中为 Oracle 数据库实例设置实例级别的以下区域语言支持 (NLS) 初始化参数：
+ NLS\_COMP
+ NLS\_DATE\_FORMAT
+ NLS\_LENGTH\_SEMANTICS
+ NLS\_NCHAR\_CONV\_EXCP
+ NLS\_SORT
+ NLS\_TIME\_FORMAT
+ NLS\_TIME\_TZ\_FORMAT
+ NLS\_TIMESTAMP\_FORMAT
+ NLS\_TIMESTAMP\_TZ\_FORMAT

有关修改实例参数的信息，请参阅[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

您可以在 SQL 客户端中设置其他 NLS 初始化参数。例如，以下语句在连接到 Oracle 数据库实例的 SQL 客户端中将 NLS\_LANGUAGE 初始化参数设置为 GERMAN：

```
ALTER SESSION SET NLS_LANGUAGE=GERMAN;
```

有关使用 SQL 客户端连接到 Oracle 数据库实例的信息，请参阅[连接到 Oracle 数据库实例](USER_ConnectToOracleInstance.md)。

## 国家/地区字符集
<a name="Appendix.OracleCharacterSets.nchar-character-set"></a>

国家/地区字符集用于 `NCHAR`、`NVARCHAR2` 和 `NCLOB` 数据类型中。国家/地区字符集通常称为 NCHAR 字符集。与数据库字符集不同，NCHAR 字符集不影响数据库元数据。

NCHAR 字符集支持以下字符集：
+ AL16UTF16（默认值）
+ UTF8

您可以使用 [create-db-instance](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) 命令的 `--nchar-character-set-name` 参数指定值（仅 AWS CLI 版本 2）。如果您使用 Amazon RDS API，请指定 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作的 `NcharCharacterSetName` 参数。创建数据库后，无法更改国家/地区字符集。

有关 Oracle 数据库中 Unicode 的更多信息，请参阅 Oracle 文档中的[使用 Unicode 支持多语言数据库](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/supporting-multilingual-databases-with-unicode.html)。