如何在 RDS Oracle 数据库上将字符集 (NLS_CHARACTERSET) 和国家字符集 (NLS_NCHAR_CHARACTERSET) 更改为 UTF8?

问题描述 投票:0回答:3

我们的应用程序设计为与 Oracle 11g 数据库配合使用,且 Charset (

NLS_CHARACTERSET
) 和 National Charset (
NLS_NCHAR_CHARACTERSET
) 均设置为 UTF8。

在 Amazon Relational Database Service (RDS) 上启动 Oracle 数据库实例时,系统会提示我选择设置为 UTF8 的 Charset

但是,我无法找到设置National Charset的方法,并且在创建数据库时该参数被设置为

AL16UTF16

我尝试了以下方法:

  • 创建了一个新的参数组来设置
    NLS_NCHAR_CHARACTERSET
    ,但参数未列出。我还尝试使用 AWS CLI 强制创建包含此参数的新参数组,但没有成功。
  • 尝试
    ALTER
    数据库,但
    SYSDBA
    角色在 Amazon 托管数据库实例上不可用。
  • 使用不同的 Charset 参数创建了不同的 Oracle RDS 数据库,以检查 National Charset 是否受到影响,但它仍然设置为
    AL16UTF16

有什么办法可以做到吗?

oracle amazon-web-services utf-8 character-encoding amazon-rds
3个回答
3
投票

可以通过在使用 AWS CLI 创建实例期间指定 --character-set-name 来设置该参数。到目前为止,我还没有找到对现有实例进行更改的方法。

在我的测试中,我使用 --character-set-name KO16MSWIN949 设置它,它将基于 AWS 文档支持韩语:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html


0
投票

使用 Cloudformation,您也可以在 AWS::RDS::DBInstance 的 CharacterSetName 属性中进行设置。


0
投票

CLI 选项 --nchar-字符集-名称

从 2020 年 10 月 7 日的 AWS cli 版本 2.0.55 开始,您可以使用:

aws rds create-db-instance --nchar-character-set-name UTF8

您还可以使用Python库boto3命令create_db_instance,选项NcharCharacterSetName。

设置国家字符集不会出现在 AWS 控制台上。

创建 RDS 数据库实例后无法更改字符集。

© www.soinside.com 2019 - 2024. All rights reserved.