修改oracle的编码格式,解决乱码问题:
//查询客户端字符集
select userenv('language') from dual
1、管理员用户连接
SQL>conn sys/密码 as sysdba;
2、关闭数据库。
SQL>shutdown immediate;
3、启动数据库到Mount状态下。
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
Session altered.
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.
4、启动数据库
SQL> Alter database open;
5、修改字符集
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
或 ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
注:
1. 如果数据库表中有CLOB类型的列,是不允许修改字符集的,解决方法为,先导出这个表的内容,然后删除这个表,修改完后,再导入这个表的内容就可以了。
2. 旧的字符集必须是新的字符集的子集,否则不能修改。
修改完后,可以查看一下修改是否成功。
6、关闭数据库
SQL> Shutdown immediate;
7、重新启动数据库
SQL> startup;