有时在同步数据过程会遇到两个库的字符集不一致,导致数据无法同步,重新安装数据库很麻烦;这时你就可以用到这个了。
1.在dos窗口中输入sqlplus,然后输入数据库管理员用户密码以及数据库实例登陆oracle数据,
2.将数据库启动到RESTRICTED模式下做字符集更改,
SQL> alter system enable restricted session;
系统已更改。
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已关闭.
3.关闭完成后,输入exit重新输入sqlplus /nolog,使用空闲例程登陆数据库,
SQL>conn / as sysdba;
已连接到空闲例程。
SQL>startup mount;
ORACLE 数据库已装载。
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> alter system set job_quue_processes=0;
系统已更改。
SQL> alter system set aq_tm_processes=0;
系统已更改。
SQL> alter database open;
数据库已更改。
SQL>alter database character set zhs16gbk;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> alter database character set internal_use zhs16gbk;
数据库已更改。
重启检查是否更改完成:
SQL>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭.
SQL>startup
ORACLE 数据库已经装载.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕.
数据库已经打开.
SQL>select userenv('language') from dual;
查询字符集是否已更改。