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)

Share and contribute or get technical support and help at My Digital Life Forums.



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 without commenting


Custom Search

New Articles

Incoming Search Terms for the Article

Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set - IMP-00016: required character set conversion (type 1 to 871) not supported - import server uses WE8ISO8859P1 character set (possible charset conversion) - oracle imp charset - import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set - IMP-00016 - check character set in NLS_LANG oracle - import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set - export client uses US7ASCII character set (possible charset conversion) - oracle imp character set - IMP-00016: required character set conversion (type 31 to 871) not supported - possible charset conversion - imp character set - oracle imp nls_lang - import done in US7ASCII character set and UTF8 NCHAR character set - imp NLS_LANG - "This message uses a character set that is not supported by the Internet Service" - This message uses a character set that is not supported by the Internet Service. - "import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set" - export server uses AL16UTF16 NCHAR character set (possible ncharset conversion) - required character set conversion (type 178 to 871) not supported - export server uses UTF8 NCHAR character set (possible ncharset conversion) - import server uses WE8MSWIN1252 character set (possible charset conversion) - export client uses WE8ISO8859P1 character set (possible charset conversion) - oracle export utf8 - This message uses a character set that is not supported by the Internet Service - Export done in US7ASCII character set and UTF8 NCHAR character set - import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set export client uses US7ASCII character set (possible charset conversion) - Export done in US7ASCII character set and AL16UTF16 NCHAR character set server uses WE8ISO8859P1 character set (possible charset conversion) - import done in US7ASCII character set and AL16UTF16 NCHAR character set - server uses WE8ISO8859P1 character set (possible charset conversion) - import done in WE8MSWIN1252 character set and UTF8 NCHAR character set - import done in WE8ISO8859P1 character set and UTF8 NCHAR character set - import done in US7ASCII character set and UTF8 NCHAR character set + import server uses UTF8 character set (possible charset conversion) + export server uses AL16UTF16 NCHAR character set (possible ncharset conversion) - "possible charset conversion" - change the client character set or NCHARSET to match the server - Export done in US7ASCII character set and AL16UTF16 NCHAR character set server uses WE8ISO8859P1 character set (possible charset conversion) - import done in we8mswin1252 - export client uses US7ASCII character set - oracle import charset - imp charset - show characterset oracle - import done in US7ASCII - This message uses a character set that is not supported by the Internet Service. - What Character set is my Oracle DB Using - french character + web service + character set - ? character oracle import - imp oracle NLS - server uses UTF8 character set (possible charset conversion) - WE8MSWIN1252 character set and AL16UTF16 NCHAR character set -