1. 字符集修改的一般步骤:
su - oracle # 切换到 oracle 用户
sqlplus /as sysdba # 以 sysdba 身份登录到数据库
shutdown immediate; # 停止数据库
startup mount; # 启动数据库到 MOUNT 状态,数据库在这个状态下可以修改字符集
然后尝试执行以下 SQL 命令来修改字符集:
alter database character set ZHS16GBK; # 将字符集修改为 ZHS16GBK
2. ORA-12712 错误:
如果执行上面的 ALTER DATABASE
命令时,报错如下:
ORA-12712: new character set must be a superset of old character set
这个错误表示你试图将字符集修改为一个非超集的字符集。例如,你试图从 UTF-8
(或者其他更广泛的字符集)修改为 ZHS16GBK
,这是不允许的,因为 ZHS16GBK
不能包含所有 UTF-8
所支持的字符。
- AL32UTF8 是一个 超集,能够支持包括 WE8ISO8859P1、ZHS