The data exported from oracle9i is imported to oracle10g. After being called by the program, it is found to be garbled,
I thought it was about the RHEL5 system character set. After several modifications, I found that there was a problem with the character set of the database.
The following figure shows the actual situation after you use dba:
Select * from V $ NLS_PARAMETERS;
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH. MI. SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH. MI. SSXFF AM
NLS_TIME_TZ_FORMAT HH. MI. SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH. MI. SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
Select userenv ('language') from dual;
Display character set:
SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
Select * from sys. props $ where name = 'nls _ CHARACTERSET ';
-----------------------
I have not solved the problem by referring to several solutions on the Internet. Finally, I used this solution to solve the problem:
Sqlplus "/as sydba"
Shutdown immediate
Startup restrict
Alter database character set ZHS16GBK;
Sometimes the following error occurs:
ORA-12712: new character set must be a superset of old character set
You can perform the following: Skip the superset check.
Alter database character set INTERNAL_USE ZHS16GBK;
Restart the database, but you 'd better back up the database first!
Author: "City of the sky"