Transferred from: http://blog.163.com/magicc_love/blog/static/18585366220123111128283/
Modify part of the red part, the original author was wrong
Start PL/SQL Developer character encoding inconsistency error
Database Character Set (Al32utf8) and Client character set (ZHS16GBK) are different.
Character set conversion may cause unexpected results.
Note:you can set the client character set through the Nls_lang environment variable or the Nls_lang registry key in
hkey_local_machine\software\oracle\key_oracle_10g.
1. Open the Registry by command regedit. Find the path to the hint in the article and find the value of the Nls_lang key:
Simplified Chinese_china. Zhs16gbk
Modified to: Simplified Chinese_china. Al32utf8 can
2, there is another possibility is due to the installation of 11g did not choose the custom installation caused by
Simplified Chinese_china. ZHS16GBK contains American_america. Al32utf8.
This is a problem, not a change to the client character set. To change the character set of the database:
Sql> Conn/as SYSDBA
sql> shutdown immediate;
Sql> Startup Mount
sql> ALTER SYSTEM ENABLE RESTRICTED SESSION;
sql> ALTER SYSTEM SET job_queue_processes=0;
sql> ALTER SYSTEM SET aq_tm_processes=0;
sql> ALTER DATABASE open;
sql> ALTER DATABASE CHARACTER SET Al32utf8;
Ora-12712:new character set must be a superset of the old character set
Hint to our character set: The new character set must be a superset of the old character set, and we can skip over the superset check to make the change:
sql> ALTER DATABASE character set Internal_use Al32utf8;
--we see that this process is identical to the internal procedure of the ALTER DATABASE CHARACTER set operation, which means that the help provided by Internal_use is to get the Oracle database to bypass the checksum of the subset and the superset.
Sql> select * from V$nls_parameters;
sql> shutdown immediate;
Sql> Startup
Sql> select * from V$nls_parameters;
When installing oracle11g in the future remember to choose a custom installation, the character set of things in advance
PL/SQL database character set (Al32utf8) and Client character set (ZHS16GBK) is different