oracle修改字符集后数据处理,【转载】Oracle装配成功后,修改字符集

【转载】Oracle安装成功后,修改字符集

看了网上的文章,乱码有以下几种可能

1. 操作系统的字符集

2.oracle server的字符集

3.客户端的字符集

1. 查看oracle的字符集

Java代码

0735073884.gif

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代码

0735073884.gif

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里边创建个表,然后在插入中文,查看一下,应该是对的。

这样就解决了乱码问题。 中间还有许多的问题,自己在慢慢研究吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值