IMP-00016 Required Character Set Conversion Not Supported Error when Import to Oracle Database

When trying to import an Oracle database export, backup or dump, you may encounter the error IMP-00016 where the import terminate prematurely and not allow you to continue the import to the destination Oracle database. The error has the following message:

IMP-00016: required character set conversion (type 1 to 871) not supported
IMP-00000: Import terminated unsuccessfully

Note that depending on your export file and database character set, the “type 178 to 871″ may change from each environment. Other typical character set conversion not supported error include from type 178 to 871 or from type 31 to 871.

The cause for the Oracle error is because import utility could not convert the character format of the export file into the native character format which is the setting of the operating system client. In other world, the issue is due to the fact that there is conversion problem between the export dump file and the destination databases which have different character set value when Oracle import utility try to import the exported database by using the Unix’s NLS_LANG local environment variable value. If the operating system environment doesn’t show the value of NLS_LANG, the import (and also export) will be done in US7ASCII as the default value for NLS_LANG on UNIX platforms is AMERICAN_AMERICA.US7ASCII, regardless of the database characterset.

The resolution to resolve the IMP-00016 is to set the the NLS_LANG parameter in local OS env variable value to match the character set of the destination database and import the dump file. NLS_LANG can be change by using set or export command. For example:

$ export NLS_LANG=.WE8ISO8859P1

NLS_LANG is set in the registry on Windows platforms. For example, on an English Windows client, the code page is WE8MSWIN1252. An appropriate setting for NLS_LANG is AMERICAN_AMERICA.WE8MSWIN1252.

You can check the character sets of the Oracle database in SQL*Plus by using following commands to list all NLS information:

SQL> col value format a25
SQL> col parameter format a25
SQL> select * from v$nls_parameters;

In the rows returned, NLS_CHARACTERSET will list the character set of the database. In ideal situation to avoid and minimize the potential errors, the recommended practise will be like the following:

At the system where database export is taken: Set NLS_LANG=. At the system where database import is done: Set NLS_LANG=.

Set the operating system NLS_LANG value to match the source or destination database character set will let Oracle assumes that the data being sent or received is encoded in the same character set as the database character set, so no validation or conversion is performed. This can lead to corrupt data if the client code page and the database character set are different and conversions are necessary. It’s more of an issue if source and destination databases have different character set, and source database contains special characters (for example chinese, japanese, spanish, german, special letters or other characters, which are not contained in US7ASCII), the target database will lose the original characters and show replacement characters instead. So, it’s best if the source and destination database has the same or similar character set.

To check the character set that a dump export and its database is using, check the export log, the characterset information should exists at the beginning of the log:

Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses WE8MSWIN1252 character set (possible charset conversion)

Similary, the import log will contain the information about what character set the import process is using and also for the target database, plus possible warning message, even if the import failed with IMP-00016 error, at the beginning of the import log:

import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses UTF8 character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)


Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. To receive notification of latest comments posted, subscribe to My Digital Life Comments RSS feed or register to receive new comments in daily email digest.
Custom Search

New Articles

Incoming Search Terms for the Article

import done in US7ASCII character set and AL16UTF16 NCHAR character set - us7ascii character set - Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set - al16utf16 nchar character set - Export done in US7ASCII character set and AL16UTF16 NCHAR character set - import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set - export server uses UTF8 NCHAR character set (possible ncharset conversion) - import done in US7ASCII character set and UTF8 NCHAR character set - possible charset conversion - import server uses WE8MSWIN1252 character set (possible charset conversion) - oracle imp character set - oracle imp nls_lang - required character - экспорт (possible charset conversion) oracle - oracle import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character setSegmentation fault - oracle imp charset - server uses WE8MSWIN1252 character set (possible charset conversion) - export client uses UTF8 character set (possible charset conversion) - oracle character set conversion export - oracle imp NLS_CHARACTERSET - import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set import server uses WE8MSWIN1252 character set (possible charset conversion) - oracle imp no errors one table - oracle import different character set - import done WE8ISO8859P1 character set and AL16UTF16 nchar character set - import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set - NLS_LANG serbian - oracle import different charset - your export file is not supported oracle express edition - sxport done in US7ASCII characer set and AL16 - export client uses WE8MSWIN1252 character set (possible charset conversion) - import done in WE8MSWIN1252 character set and UTF8 NCHAR character set - A character set conversion is not possible. - conversion not supported error - dump oracle WE8MSWIN1252 - Export done in US7ASCII character set and UTF8 NCHAR character set - export client in US7ASCII - for oracle we8mswin1252 with al16utf-16 client settings - how to use imp with character set - import done in US7ASCII - import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character setexport client uses US7ASCII character set (possible charset conversion) - match db entry different charset - nls_lang utf-8 turkish.turkey - oracle what character set is my database - oracle import nls polish character - oracle full import avoid error - oracle import with different characterset - oracle show character set us7ascii - oracle imp danish characters - we8mswin1252 vs. us7ascii - character set in oracle export -