Ich versuche, einen Oracle 11-Export in Oracle 11 XE zu importieren.
Ich erhalte folgende Meldungen:
Import in XE Fehlerhaft Import in WE8MSWIN1252 Zeichensatz und AL16UTF16 NCHAR Zeichensatz
Importserver verwendet AL32UTF8 Zeichensatz (mögliche Zeichensatzkonvertierung)
Irgendwelche Ideen, wie ich diesen Dump in Oracle 11 XE importieren kann?
Bearbeiten:
Gegeben eine Tabelle
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3) NOT NULL,
Name VARCHAR2(60) NOT NULL,
Abkuerzung VARCHAR2(5) NOT NULL
);
Ich bekomme solche Fehler
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ö
Einige Zeilen fehlen beim Import.
Sie haben in XE keine Auswahl an Zeichensätzen, sodass Sie diese nicht an die Datenbank anpassen können, die Sie importieren möchten. Wäre es praktisch, die Quellendatenbank vor dem Export zu migrieren ?
Der Import sollte funktionieren, aber die Konvertierung von Zeichensätzen kann bedeuten, dass einige Textspalten mit Nicht-ASCII-Zeichen nach dem Import nicht gleich aussehen. Und Zeilen können abgelehnt werden, wenn sie im neuen Zeichensatz zu lang sind.
In Ihrem Fall konvertieren Sie in UTF8, was bedeutet, dass ein einzelnes Bytezeichen während der Konvertierung in 2 ( oder theoretisch mehr ) wachsen kann . Möglicherweise müssen Sie die Spaltengröße vor dem Export erhöhen oder das Zielschema anpassen und die Daten in einem separaten Schritt importieren. Weitere mögliche Probleme beim Abschneiden von Daten finden Sie hier
quelle
Der einfachste Weg: (Herunterfahren erforderlich) :
Verbinden Sie sich zunächst als sysdba:
Führen Sie als Nächstes das folgende Skript aus:
Es hat bei mir in einer Oracle 12c Standard Two Edition funktioniert
Entnommen aus: http://www.blogdelpibe.com/2015/05/como-solucionar-el-error-ora-12899.html
quelle
Das hat bei mir funktioniert. An Stelle von:
Versuchen Sie so etwas in Bash:
Dies ändert
col1 VARCHAR2(n)
sichcol1 VARCHAR2(n CHAR)
in Zeilen, die mit beginnenCREATE TABLE
. Sie können auch Änderungendata.dmp
vornehmen , bevor Sie imp ausführen, wenn Sie beispielsweise nicht in der Lage sind,<(...)
Folgendes in Ihrer Shell zu tun :... aber es ist nicht notwendig in Bash und etwas könnte bei der Konvertierung oder beim Erstellen des Backups schief gehen, wie von angegeben
-i.bk
.quelle