解决PLSQL中文乱码以及Oracle服务端的字符集修改为ZHS16GBK(问题完善) 您所在的位置:网站首页 plsql导出csv中文乱码 解决PLSQL中文乱码以及Oracle服务端的字符集修改为ZHS16GBK(问题完善)

解决PLSQL中文乱码以及Oracle服务端的字符集修改为ZHS16GBK(问题完善)

2023-09-12 15:10| 来源: 网络整理| 查看: 265

情况一:用plsql连接本地或远程Oracle服务器时,出现中文乱码时,更改客户端的字符集与服务器中的一致即可。 注意要一致!!! 步骤一:在plsql中执行 select userenv(‘language’) from dual; 在这里插入图片描述 步骤二:将查出来的值添加到环境变量中。 变量名:NLS_LANG 变量值:AMERICAN_AMERICA.ZHS16GBK

步骤三:保存好后,重启plsql,即可正常显示中文。 在这里插入图片描述

情况二:查询出来的字符集不为AMERICAN_AMERICA.ZHS16GBK时,又想更改Oracle服务器的字符集。

步骤如下 更改字符集步骤方法(WE8MSWIN1252 --> ZHS16GBK)

开始 - 运行 - 输入cmd 进入命令提示符(Windows系统) Ctrl + Alt + T 打开控制台窗口(Ubuntu系统)

输入 sqlplus /nolog

以管理员身份登录sqlplus

SQL> conn / as sysdba

Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> alter database open;

Database altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select * from v$nls_parameters;

… …

19 rows selected.

重启检查是否更改完成:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL> select * from v$nls_parameters;

… …

19 rows selected.

更改完成后,重启下plsql,再在plsql中执行该SQL语句查看字符集是否更改为ZHS16GBK: 在plsql中执行 select userenv(‘language’) from dual;

然后在设置下系统变量,步骤如情况一 一致。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有