J'essaie d'importer une exportation Oracle 11 dans Oracle 11 XE.
Je reçois les messages suivants:
importation dans XE fehlerhaft importation effectuée dans le jeu de caractères WE8MSWIN1252 et le
serveur d'importation de jeu de caractères AL16UTF16 NCHAR utilise le jeu de caractères AL32UTF8 (conversion de jeu de caractères possible)
Des idées, comment puis-je importer ce vidage dans Oracle 11 XE?
Éditer:
Étant donné une table
CREATE TABLE BDATA.Artikel(
Key VARCHAR2(3) NOT NULL,
Name VARCHAR2(60) NOT NULL,
Abkuerzung VARCHAR2(5) NOT NULL
);
Je reçois des erreurs comme celle-ci
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ö
Certaines lignes sont manquantes lors de l'importation.
Vous n'avez pas le choix de jeu de caractères sur XE , vous ne pouvez donc pas le modifier pour l'adapter à la base de données que vous essayez d'importer. Serait-il pratique de migrer la base de données source avant l'exportation?
L'importation devrait fonctionner, mais la conversion du jeu de caractères peut signifier que certaines colonnes de texte avec des caractères non ascii ne seront pas identiques après l'importation. Et les lignes peuvent être rejetées si elles sont trop longues dans le nouveau jeu de caractères.
Dans votre cas, vous convertissez en UTF8, ce qui signifie qu'il est possible qu'un caractère à un octet croisse pendant la conversion en 2 ( ou plus en théorie ). Vous devrez peut-être augmenter la taille de la colonne avant d'exporter ou d'ajuster le schéma cible et d'importer les données dans une étape distincte. Voir ici pour d'autres problèmes de troncature de données possibles
la source
La manière la plus simple: (Arrêt nécessaire) :
Tout d'abord, connectez-vous en tant que sysdba:
Ensuite, exécutez le script suivant:
Cela a fonctionné pour moi dans une Oracle 12c Standard Two Edition
Tiré de: http://www.blogdelpibe.com/2015/05/como-solucionar-el-error-ora-12899.html
la source
Cela a fonctionné pour moi. Au lieu de cela:
Essayez quelque chose comme ça dans bash:
Ceci change tout
col1 VARCHAR2(n)
àcol1 VARCHAR2(n CHAR)
en lignes commençant parCREATE TABLE
. Vous pouvez également changerdata.dmp
avant d'exécuter imp sur celui-ci, si vous ne pouvez pas<(...)
dans votre shell par exemple:... mais ce n'est pas nécessaire dans bash et quelque chose pourrait mal tourner dans la conversion ou dans la sauvegarde comme indiqué par
-i.bk
.la source