1.查询当前实例,并切换实例
#oracle用户登录
su - oracle
#查询当前默认的实例,例如 查询结果为orcl
echo $ORACLE_SID
#如果orcl不是你想操作的实例,则切换实例
export ORACLE_SID=party
2.登录sqlplus,连接sysdba用户
#登录sqlplus
sqlplus /nolog
#连接sysdba用户
conn /as sysdba
3.停止数据库,以mount状态启动(加载控制文件)
#停止数据库
shutdown immediate;
#以mount状态启动
startup mount;
4.修改字符集
#结果为:System altered
ALTER SYSTEM ENABLE RESTRICTED SESSION;
#结果为:System altered
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
#结果为:System altered
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
#结果为:Database altered.
alter database open;
#如果失败new character set must be a superset of old character set,可执行下面
ALTER DATABASE CHARACTER SET ZHS16GBK;
#跳过超集的检查做更改,结果为:Database altered.
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
#查看修改后的字符集
select * from v$nls_parameters;
5.重启,验证字符集是否修改成功
#停止数据库实例
shutdown immediate;
#启动数据库实例
startup;
#查询当前字符集,验证是否成功
select userenv('language') from dual