设为首页 加入收藏

TOP

oracle安装成功后通过更改字符集解决乱码问题
2014-11-24 02:03:06 来源: 作者: 【 】 浏览:12
Tags:oracle 安装 成功 通过 更改 字符集 解决 乱码 问题

看了网上的文章,乱码有以下几种可能
1. 操作系统的字符集
2.oracle server的字符集
3.客户端的字符集
1. 查看oracle的字符集
Java代码
select userenv('language') from dual
2.在Ubuntu中.bashrc 中加入下边的话:

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(改掉操作系统的字符集)
Oracle NLS_LANG Oracle

3.引用
如果oracle 与操作系统的字符集一致,查询时,就直接从oracle中把数据读出来,直接返回给用户,插入时,直接插入到 数据库
但是如果不一致的话,会将数据库中的数据转换成操作系统的字符集,返回给用户。插入时一样,就会将数据先做个转换,然后在插入到数据库。
网上的人是这么说的,但具体的我也没试。我有时间试一下,看是不是他所说的那样。
4.修改Oracle的编码和操作系统的一样。(参考别人的)
登陆用dba
SQL> conn sys/sys as sysdba;
停掉数据库
SQL>shutdown immediate;
启动数据库到mount状态下
SQL> STARTUP MOUNT;
Java代码
ORACLE instance started.
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 58720256 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
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;
设置字符集
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
先把数据库中的有中文乱码的清空了。
然后在执行。这是有可能报错
执行这个ALTER DATABASE character set INTERNAL_USE ZHS16GBK
跳过字符集检查
关闭数据库
SQL> Shutdown immediate;
重启
SQL> startup;
做完之后在sqlplus里边试一下,应该就好了,但是在pl/sql里边一看还是乱码,
最后,在pl/sql里边创建个表,然后在插入中文,查看一下,应该是对的。
这样就解决了乱码问题。 中间还有许多的问题,自己在慢慢研究吧。
作者 piaoliuxiong
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle varchar2字段中的乱码数据.. 下一篇linux下oracle EM中文乱码问题解决

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: