查看系统环境变量
[root@bogon ~]# su - oracle
[root@oracle ~]$ echo $LANG
en_US.UTF-8
注意NLS_LANG和系统LANG的编码需要一致
[root@oracle ~]$ vi .bash_profile
# 常用unicode字符集
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# 常用中文字符集
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
[oracle@bogon ~]$ echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.AL32UTF8
重启系统
[oracle@bogon ~]# reboot
查询编码语句
> select * from NLS_DATABASE_PARAMETERS;
> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';
> select userenv('language') from dual;
如果上面不行,强制修改,但执行上述命令,有可能造成数据库中已有数据混乱的情况,所以在进行操作前,要进行数据库的备份操作。
[oracle@bogon ~]$ sqlplus sys as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 8月 24 06:29:04 2017
Copyright (c) 1982, 2009, Oracle. All rights reserved.
输入口令:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP MOUNT;
ORACLE 例程已经启动。
Total System Global Area 776646656 bytes
Fixed Size 2217384 bytes
Variable Size 499124824 bytes
Database Buffers 272629760 bytes
Redo Buffers 2674688 bytes
数据库装载完毕。
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
会话已更改。
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
系统已更改。
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
系统已更改。
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
系统已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
数据库已更改。
SQL> ALTER SESSION SET SQL_TRACE=FALSE;
参考文档: