oracle数据库中文乱码处理

今天centos系统(Linux)装了oracle数据库,导入数据,中文都变为问号(?)了,在网上找了解决方法,都不可以,最后用下面方法成功解决,分享出来给大家:

 

默认数据字符集为AMERICAN_AMERICA.WE8MSWIN1252 


最初的编码:SQL>  selectuserenv('language') from dual;

    AMERICAN_AMERICA.WE8MSWIN1252 


修改方法(以改成UTF8为例)


以高级管理员的权限登录进去

$ sqlplus / as sysdba;

首先查看一下你DB的编码 select userenv('language') from dual;

然后一句一句执行以下代码:

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_useAL32UTF8(或者是UTF8);
SQL> shutdown immediate;
SQL> startup
SQL>alter system disable restricted session;
 
注意: 执行完别忘记了执行最后一句,否则可能后续很多事情都做不了
以上如果都执行成功后,可再次查询DB编码 select userenv('language') from dual;
我的查询结果为:AMERICAN_AMERICA.AL32UTF8
证明DB的编码已改为UTF-8了;

你可能感兴趣的:(数据库)