Oracle 10g字符集问题

1.出现的问题:我的电脑没有安装oracle10g服务端,安装了oracle10g的客户端,然后有一个免安装版的PL/SQL,利用sqlplus时,可以正常登录,不会出现客户端和数据库字符集不一致的问题,当我使用PL/SQL首次登录时,出现了数据库与客户端字符集不一致的情况,提示信息如下图所示:
这里写图片描述
2.解决方案:
在google上面搜了一下,基本上所有的answer都是:开始-运行-regedit-找到提示路径-找到 NLS_LANG 键,他的值原来是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8-重新登录PL/SQL-问题就解决了,我也按照这个步骤做了,无奈我找到上图路径中software,但是下面的就不存在,经过一番尝试,最终找到解决方案,解决了PL/SQL首次登录字符集不一致的问题。

SQL>conn as/sysdba
SQL>shutdown immediate;
SQL>startup mount;
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 ZHS16GBK;
ORA-12712: 新字符集必须为旧字符集的超集
----这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
--我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验.
SQL> select * from v$nls_parameters; 
SQL> shutdown immediate;
SQL> startup
SQL> select * from v$nls_parameters;

最后重新打开PL/SQL就不会出现提示信息说字符集不一致。
3.出现上述的问题原因:我大概总结了一下,因为我以前安装过oracle11g,在我的电脑上,也出现了这个问题,貌似没有解决,最后卸载了,注册表也删除了,但任然不知道删除的彻底不彻底,可能是因为当时安装时没有选择自定义安装所造成的,所以以后应当注意,这个不是修正客户端字符集的问题,而是需要修改数据库字符集的问题。
ps:以上就是我今天遇到的问题和解决方案。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值