查询数据库字符集编码
SELECT * FROM NLS_DATABASE_PARAMETERS p where p.PARAMETER='NLS_CHARACTERSET';
1.以sysdba的身份登录
sqlplus / as sysdba
2.关闭数据库
shutdown immediate
3.以mount(挂载方式)打开数据库
startup mount
4.设置session
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
5.启动数据库
alter database open;
6.修改字符集(改成你需要的字符集)
ALTER DATABASE CHARACTERSET ZHS16GBK;
这里可能会出错,提示ORA-12712: 新字符集必须为旧字符集的超集
跳过超集检查做更改:
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
7.关闭数据库,重新启动
shutdown immediate
startup
8.再次查询,新数据库字符集已经变成ZHS16GBK,你以为这样就完了么?这个时候可能数据泵无法使用,我就碰到了。所以继续执行下边代码
execute sys.dbms_metadata_util.load_stylesheets;