我们的应用程序设计为与 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 托管数据库实例上不可用。AL16UTF16
。有什么办法可以做到吗?
可以通过在使用 AWS CLI 创建实例期间指定 --character-set-name 来设置该参数。到目前为止,我还没有找到对现有实例进行更改的方法。
在我的测试中,我使用 --character-set-name KO16MSWIN949 设置它,它将基于 AWS 文档支持韩语:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html
使用 Cloudformation,您也可以在 AWS::RDS::DBInstance 的 CharacterSetName 属性中进行设置。
从 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 数据库实例后无法更改字符集。