Oracle 数据库 字符乱码 解决办法:
问题描述:
1、安装完成之后,还原之前的数据库,显示为乱码,因为在安装oracle的时候与之前数据库的字符集不一至,导致业务乱码。
2、查询当前数据库字符集
SQL> SELECT parameter,value FROM v$nls_parameters WHERE parameter LIKE '%CHARACTERSET';
PARAMETER ---------------------------------------------------------------- VALUE ---------------------------------------------------------------- NLS_CHARACTERSET WE8MSWIN1252
NLS_NCHAR_CHARACTERSET AL16UTF16
3、需要将字符集由 WE8MSWIN1252修改为 AL32UTF8
4、修改SQL代码
conn /as sysdba shutdown immediate; startup mount ALTER SESSION SET SQL_TRACE=TRUE; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0; alter database open; ALTER DATABASE CHARACTER SET AL32UTF8; ALTER DATABASE character set INTERNAL_USE AL32UTF8; ALTER SESSION SET SQL_TRACE=FALSE; select * from v$nls_parameters; shutdown immediate; startup
注意:
在执行,SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
--这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验.
5、在oracle下 .bash_profile 文件里面加入 export NLS_LANG="Simplified Chinese_CHINA.ZHS16GBK"
??
?? (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|