Dr. Alex Dong's Blog

Chinese Character can’t display when migrate Oracle database

In our project, we need to migrate a database from one server to local machine. But the Chinese characters can’t be displayed properly in the new database. The server OS  is a centos and local machine is a windows 10.

This problem is caused by:

  • the character set used by both Oracle server and client in the local machine.
  • The character set used by the export client.

Check Oracle server character set

 select value from nls_database_parameters where parameter=‘NLS_CHARACTERSET’;

it should be ZHS16GBK

Change the new Oracle server character set to ZHS16GBK

run regedit in a command terminal.

change HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\NLS_LANG to “AMERICAN_AMERICA.ZHS16GBK

Change export client character set to ZHS16GBK

 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

exp username/password@database file=export.dmp

Remove all the tables in the new oracle database

     Run pl/sql developer, find objects->tablespaces->tables. Seelct all the tables and right click “drop”.

Download the export.dmp file to local machine

    sz export.dmp

Import export.dmp to local database

    imp username/password@lcoal_database file=export.dmp full=y

adminChinese Character can’t display when migrate Oracle database