如何在Windows中的SQLPlus中将Oracle编码更改为AL32UTF8

Zet*_*ian 1 oracle

我使用以下命令来测试我的Oracle当前编码

select userenv('language') from dual;
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
select * from nls_database_parameters
select * from nls_instance_parameters
select * from nls_session_parameters
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我想要的是AL32UTF8.如何将编码更改为AL32UTF8.谢谢〜

Wer*_*eit 7

有两种方法可以设置它.

  • 作为环境变量NLS_LANG.要么暂时用

    SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8 或在您的计算机属性设置中.

  • 在你的注册表中HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG,分别是 HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG对于Windows 64位上的32位Oracle客户端.

如果您设置两个环境变量优先.

请注意,当您设置NLS_LANG值时,您只需告诉Oracle数据库"我的客户端使用字符集AL32UTF8" - 这并不一定意味着您的客户端确实在使用AL32UTF8!

在SQL*Plus的情况下,它从cmd.exe代码页继承字符集.您可以使用命令查询和更改它chcp,例如

C:\>chcp
Active code page: 850

C:\>chcp 65001
Active code page: 65001

C:\>sqlplus ...
Run Code Online (Sandbox Code Playgroud)

请参阅代码页标识符以获取代码页列表.

但是,根据您的屏幕截图,您使用基于Java的SQL Developer.SQL Developer不依赖于NLS_LANG设置.检查工具 - >首选项 - >环境 - >编码中的值.