首先,使用/as sysdba方式登录数据库

sqlplus "/as sysdba"

登录成功后,查看现在的编码方式

select * from nls_database_parameters where parameter='NLS_CHARACRERSET';

开始修改数据库字符集,需要注意的是,新修改的字符集必须是原有字符集的超集。在刚刚的sqlplus窗体中继续输入一下命令

1.关闭数据库

关闭的过程中如果提示ora-01012错误,可以尝试重启oracle数据库服务,然后重新关闭即可,出这个问题的原因是因为没有完全关闭数据库造成的。

shudown immediate;

2.挂载数据库

startup mount;

3.设置session

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

4.启动数据库

ALTER DATABASE OPEN;

5.修改字符集

utf-8:UTF8

GBK:ZHS16GBK

可以从gbk转向utf8,不能从utf-8转为gbk。

ALTER DATABASE CHARACTER SET ZHS16GBK;

6.重新启动数据库

shutdown immediate;

startup;