oracle数据库中文乱码问题解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle数据库中文乱码问题解决方案
oracle数据库中文乱码问题解决方案
一、查看数据库服务器端的字符编码
SQL>SELECT * FROM NLS_DATABASE_PARAMETERS;
我对显示为AL32UTF8显示不正确,将其改为ZHS16GBK中文编码,步骤如下:
先停止本数据库服务:
SQL>shutdown immediate;
数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

这些信息是更改正确字符集后的提示信息,一般应该是英文的)再启动数据库
SQL>startup restrict; 此处要注意启动方式要加restrict参数ORACLE 例程已经启动。

Total System Global Area 603979776 bytes
Fixed Size 1220796 bytes
Variable Size 180358980 bytes
Database Buffers 415236096 bytes
Redo Buffers 7163904 bytes
数据库装载完毕。

数据库已经打开。

修改字符集
SQL> alter session set sql_trace=true;
Session altered.
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;
Database altered.
重启数据库
SQL> shutdown immediate;
SQL> startup;
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
二、查看和修改客户端字符集
客户端NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS _LANG Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export
可以编辑bash_profile 文件进行永久设置
vi .bash_profile
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
or export NLS_LANG="Simplified Chinese_china".ZHS16GBK # 使bash_profile 设置生效
source .bash_profile
备注:
在终端不能正确显示中文可修改终端—>设定字符编码。

然后选择合适的中文编码。

相关文档
最新文档