patternMinor
Oracle Import problem caused by different character sets
Viewed 0 times
problemcharactersetsdifferentoraclecausedimport
Problem
I'm trying to import an Oracle 11 export into Oracle 11 XE.
I get the following messages:
import in XE fehlerhaft import done in WE8MSWIN1252 character set and
AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
Any ideas, how I can import this dump into Oracle 11 XE ?
Edit:
Given a table
I get errors like this
Some rows are missing from the import.
I get the following messages:
import in XE fehlerhaft import done in WE8MSWIN1252 character set and
AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
Any ideas, how I can import this dump into Oracle 11 XE ?
Edit:
Given a table
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3) NOT NULL,
Name VARCHAR2(60) NOT NULL,
Abkuerzung VARCHAR2(5) NOT NULL
);I get errors like this
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column "BDATA"."ARTIKEL"."ABKUERZUNG" (actual: 6, maximum: 5)
Column 1 ABL
Column 2 Aufbewahrungslösung
Column 3 AfbLöSome rows are missing from the import.
Solution
If that is the actual DDL you are using to create the table, you could use the NLS_LENGTH_SEMANTICS parameter. If you set that to CHAR rather than the default of BYTE, a VARCHAR2(5) will be allocated enough space to store 5 characters in the database character set (potentially up to 20 bytes) rather than 5 bytes (which could allow just 1 character).
Unfortunately, changing the
Unfortunately, changing the
NLS_LENGTH_SEMANTICS probably won't be terribly helpful if you're relying on the import process to create the table-- the dump file will inherently add the CHAR or BYTE keyword so it would actually issue the statementCREATE TABLE BDATA.Artikel(
Key VARCHAR2(3 BYTE) NOT NULL,
Name VARCHAR2(60 BYTE) NOT NULL,
Abkuerzung VARCHAR2(5 BYTE) NOT NULL
);Code Snippets
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3 BYTE) NOT NULL,
Name VARCHAR2(60 BYTE) NOT NULL,
Abkuerzung VARCHAR2(5 BYTE) NOT NULL
);Context
StackExchange Database Administrators Q#2736, answer score: 8
Revisions (0)
No revisions yet.