DB:ORACLE:Import Utility
Syntax :-
imp DBUSERNAME/DBPASSWORD@CONNECTIONSTRING file=D:\sample.dmp FULL=yes
There are multiple aspects while importing Dump file to Database which requires careful consideration which are followings :-
i) Username with which this dump is created
ii) Table Space which it is using.
iii) Character Set which it is reffering.
Common Issues :- Ref : http://docs.oracle.com/cd/B10500_01/server.920/a96529/ch10.htm
Issue 1 :
Another character set migration scenario that can cause the loss of data is migrating a database that contains invalid data. Invalid data usually occurs in a database because the
Syntax :-
imp DBUSERNAME/DBPASSWORD@CONNECTIONSTRING file=D:\sample.dmp FULL=yes
There are multiple aspects while importing Dump file to Database which requires careful consideration which are followings :-
i) Username with which this dump is created
ii) Table Space which it is using.
iii) Character Set which it is reffering.
Common Issues :- Ref : http://docs.oracle.com/cd/B10500_01/server.920/a96529/ch10.htm
Issue 1 :
IMP-00038: Could not convert to
environment character set's handle
IMP-00000: Import terminated
unsuccessfully
It clears that from error message that issue is with Conversion. Lets investigate this further :-
Concepts :
In the database data dictionary, schema object names cannot exceed 30 bytes in length.
Schema objects are tables, clusters, views, indexes, synonyms,
tablespaces, and usernames. You must rename schema objects if their
names exceed 30 bytes in the new database character set. For example,
one Thai character in the Thai national character set requires 1 byte.
In UTF8, it requires 3 bytes. If you have defined a table whose name is
11 Thai characters, then the table name must be shortened to 10 or fewer
Thai characters when you change the database character set to UTF8.
If existing Oracle usernames or passwords are created based on
characters that will change in size in the new character set, users will
experience login difficulties due to authentication failures after the
migration to a new character set. This is because the encrypted
usernames and passwords stored in the data dictionary are not updated
during migration to a new character set. For example, if the current
database character set is WE8MSWIN1252 and the new database character
set is UTF8, then the length of the username
scött (o with an umlaut) will change from 5 bytes to 6 bytes. In UTF8, scött
will no longer be able to log in because of the difference in the
username. Oracle Corporation recommends that usernames and passwords be
based on ASCII characters. If they are not, you must reset the affected
usernames and passwords after migrating to a new character set.
When
CHAR data contains characters that will be expanded
after migration to a new character set, space padding will not be
removed during database export by default. This means that these rows
will be rejected upon import into the database with the new character
set. The workaround is to set the BLANK_TRIMMING initialization parameter to TRUE before importing the CHAR data.
Interpretations :-
1.Replacement Characters that Result from Using the Export and Import Utilities
The Export and Import utilities can convert character sets from the
original database character set to the new database character set.
However, character set conversions can sometimes cause data loss or data
corruption. For example, if you are migrating from character set A to
character set B, the destination character set B should be a superset of
character set A. The destination character, B, is a superset
if it contains all the characters defined in character set A.
Characters that are not available in character set B are converted to
replacement characters, which are often specified as
? or ¿ or a character that is related to the unavailable character. For example, ä(a with an umlaut) can be replaced by a. Replacement characters are defined by the target character set.
To reduce the risk of losing data, choose a destination character set
with a similar character repertoire. Migrating to Unicode can be an
attractive option because UTF8 contains characters from most legacy
character sets.
2.Invalid Data That Results from Setting the Client's NLS_LANG Parameter Incorrectly
Another character set migration scenario that can cause the loss of data is migrating a database that contains invalid data. Invalid data usually occurs in a database because the
NLS_LANG parameter is not set properly on the client. The NLS_LANG
value should reflect the client operating system code page. For
example, in an English Windows environment, the code page is
WE8MSWIN1252. When the NLS_LANG parameter is set properly, the database can automatically convert incoming data from the client operating system. When the NLS_LANG
parameter is not set properly, then the data coming into the database
is not converted properly. For example, suppose that the database
character set is UTF8, the client is an English Windows operating
system, and the NLS_LANG setting on the client is UTF8.
Data coming into the database is encoded in WE8MSWIN1252 and is not
converted to UTF8 data because the NLS_LANG setting on the
client matches the database character set. Thus Oracle assumes that no
conversion is necessary, and invalid data is entered into the database.
The second possible problem is having data from mixed character sets
inside the database. For example, if the data character set is
WE8MSWIN1252, and two separate Windows clients using German and Greek
are both using the
NLS_LANG character set setting as WE8MSWIN1252, then the database will contain a mixture of German and Greek characters.