核心解决思想是将服务端和客户端的的字符集改成AL32UTF8
查看当前数据库字符集
select userenv('language') from dual;
修改Oracle客户端字符集方法:
1:可以通过修改注册表键值永久设置,类似于这样的键值:
HKEY_LOCAL_MACHINE/SOFTWARE/Oracle/HOME0下,
如一般的简体中文
nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
这里我们需要将它修改为SIMPLIFIED CHINESE.AL32UTF8
2、这里我们也可以通过语句进行修改
alter database national characyer ser internal_use utf8;
修改Oracle服务端字符集方法:
sqlplus/nolog
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 INTERNAL_USE AL32UTF8;
SQL> select * from v$nls_parameters;
重启检查是否更改完成:
SQL> shutdown immediate;
SQL> startup
参考网址:
http://lelong.iteye.com/blog/993638
http://hi.baidu.com/notepad19/item/200b1731cd35e4c71b969619?qq-pf-to=pcqq.c2c
http://blog.itpub.net/8475224/viewspace-692675
http://soft.chinabyte.com/database/444/12618444.shtml