话不多说,先说下这次遇到的问题。在64位操作系统上装64位oracle时,本来默认的编码是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,但是实际安装的时候却没有这个编码,装完后发现在sqlplus里面数据乱码,网上找了好多资料 终于找到一个靠得住的解决办法,就是在环境变量中添加一项,NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 然后乱码就解决了。
plsql developer因为没有64位版本的,所以如果什么都不配置的话在64位操作系统是用不了的,解决办法如下:
首先下载一个oracle客户端,解压得到的文件,将得到的文件放进oracle安装目录下的product下,然后再由oracle客户端解压下的文件夹根目录拷贝oracle的安装目录下的NETWORK文件夹,接下来在plsql developer中的工具-首选项-oracle-连接 下的oci库选择oracle客户端中的oci.dll文件路径即可。
但是此时的plsql developer连接数据库会发现乱码问题存在,主要还是编码问题,具体哪个编码不对不是很清楚,解决办法如下:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
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;
ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
alter system disable restricted session;//这句是设置所有用户都可以登录数据库的
另一种编码格式
simplified chinese_china.utf8
来源:oschina
链接:https://my.oschina.net/u/209795/blog/164550