初学Oracle,在安装时总是忘记选择字符集,导致字符集老是为默认的,然后涉及到中文的时候总是很尴尬。
可以用select userenv('language') from dual; 来查看当前database的字符集
(1)重启Oracle到mount状态
sqlplus / as sysdba;
shutdown immediate;
startup nomount;
alter database mount;
(2)将库改为RESTRICTED模式,启动到open
alter system enable restricted session;
alter database open;
(3)修改字符集
alter system character set ZHS16GBK;/*这里也可以改成其他字符集,例如UTF8,一般简体中文 都用ZHS16GBK*/
如果报错:ORA-12712: new character set must be a superset of old character set
说明更换的字符集没有现在的字符集大,也就是说新的字符集一定要包括现有的。
不过可以用命令忽视这个检查
alter database character internal_use ZHS16GBK;
(4)重启数据库,修改完成
总结:数据库的字符集切忌在安装的时候要选择正确,因为真正的生产环境基本不可能再去修改字符集的