通过pl/sql developer的客户端连接oracle,再从File->New->Commond Windows

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 
Connected as xxxxx@ORCLxxx

SQL>

一、查看编码
1、查看oracle数据库编码
命令:SQL>select * from nls_database_parameters where parameter =’NLS_CHARACTERSET’;

执行结果:

PARAMETER                      VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_CHARACTERSET               ZHS16GBK


查询的数据来源props$,这个代表的是数据库字符集。

2、查看oracle客户端编码
命令:SQL>select * from nls_instance_parameters where parameter=’NLS_LANGUAGE’;

执行结果:

PARAMETER                                                    VALUE
------------------------------------------------------------ ---------------------------------------------------
NLS_LANGUAGE                                                 AMERICAN

其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表会话字符集环境

select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

二、修改编码
将数据库环境字符集的AL32UTF8,换为ZHS16GBK

首先以sysdba的身份登录上去 conn /as sysdba
关闭数据库shutdown immediate;
以mount打来数据库,startup mount
设置session

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
启动数据库

alter database open;
修改字符集

ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
关闭,重新启动

SQL>shutdown immediate;
SQL> startup

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐