您的位置:首页 > 数据库 > Oracle

Linux下oracle中文编码设置问题

2012-11-23 14:38 369 查看
最近项目要用到oracle数据库。期间遇到一些中文乱码问题。经过一番痛苦的折腾,中文能正常显示了,现把过程介绍如下:

1 首先查看linux的语言设置echo $LANG ,本人的LINUX上为zh_CN.UTF8

2 查看oracle的字符编码:本人oracle数据库版本为10.2.0.1

select *from nls_database_parameters;

3 用sysdba用户修改字符编码为AL32UTF8(UTF-8的编码子集)

alter database character set AL32UTF8;

如果遇到不能修改,则调用以下步骤:

alter system enable restriced session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open;

然后,alter database character set AL32UTF8;

当系统提示字符集必须为旧字符集的超集时,可用下面的句强制修改字符集

alter database character set internal_use AL32UTF8;

4 修改.bash_profile文件的语言设置(oracle客户端,该文件在用oracle用户登录的默认目录下)

增加export NLS_LANG=AMERICAN_AMERICA.UTF8或将NLS_LANG修改为AMERICAN_AMERICA.UTF8 ,保存。

5 导入客户端配置

source .bash_profile

6 重启数据库

shutdown immediate;

startup mount;

7 登录oralce数据库,插入中文字符,select 查询的内容正常。

通过调用OCI库中的函数插入中文数据,用select显示也正常。

中文编码问题解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐