Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > Import/Export
Import/Export Forum d'entraide sur les outils d'import/export Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/05/2012, 15h53   #1
David Fouejio
Membre du Club
 
Inscription : janvier 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 144
Points : 64
Points : 64
Par défaut Problème d'import sur 11gR2

Bonjour,
J'ai exporté des bases de données 9i.0.2 et 11gR1 (sous environnement 32 bits) et j'importe dans 11gR2 64 bits (sous windows 7 64 bits). Les bases ont été exporté avec le jeux de caractère WE8MSWIN1252 et le jeu NCHAR AL16UTF16 et serveur d'import utilise le jeu de caractères AL32UTF8.

Lors de l'import la taille des chaînes de caractère est augmentée de 1 pour les CHAR et de 1 jusqu'à 5 pour les VARCHAR. Ce qui produit les erreures suivantes :

Citation:
IMP-00019: ligne rejetée en raison de l'erreur ORACLE 12899
IMP-00003: Erreur ORACLE 12899 rencontrée
ORA-12899: valeur trop grande pour la colonne "ACCESSMODE"."NAME" (réelle : 51, maximum : 50)
ou

Citation:
IMP-00019: ligne rejetée en raison de l'erreur ORACLE 12899
IMP-00003: Erreur ORACLE 12899 rencontrée
ORA-12899: valeur trop grande pour la colonne "AUDITTRACK"."TRANSACTION" (réelle : 2005, maximum : 2000)
ou

Citation:
IMP-00019: ligne rejetée en raison de l'erreur ORACLE 12899
IMP-00003: Erreur ORACLE 12899 rencontrée
ORA-12899: valeur trop grande pour la colonne "AUDITTRACK"."TRANSACTION" (réelle : 2003, maximum : 2000)
Je ne sais pas s'il y a des options d'import permettant de resoudre ce problème.
Merci d'avance pour tout aide.
David Fouejio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2012, 23h51   #2
Pomalaix
Rédacteur
 
Inscription : décembre 2002
Messages : 2 653
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 653
Points : 4 125
Points : 4 125
Eh oui, c'est un grand classique de la conversion vers unicode : l'équivalence 1 caractère --> 1 octet n'est plus valable, et du coup certaines valeurs ne logent plus dans la colonne.

Vous pouvez vous référer à cette discussion pour une solution :
http://www.developpez.net/forums/d77...tf/#post518265
Elle repose sur le fait qu'on peut définir une colonne comme VARCHAR2(20 CHAR), c'est à dire qu'elle pourra accueillir 20 caractères même s'ils prennent plus d'un octet chacun.
Si on se contente de dire VARCHAR2(20), c'est implicitement VARCHAR2(20 BYTES), à cause de la valeur par défaut du paramètre d'instance NLS_LENGTH_SEMANTICS.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 31/05/2012, 16h14   #3
David Fouejio
Membre du Club
 
Inscription : janvier 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 144
Points : 64
Points : 64
Merci pour ta réponse Pomalaix,

J'ai regardé le lien que tu m'as envoyé on y traite uniquement des VARCHAR2 mais j'ai eu le même problème pour les CHAR je ne vois pas comment le resoudre.
Je vais donc modifier toutes les colonnes VARCHAR2(n) en VARCHAR2(n CHAR), et si ça marche je transforme aussi toutes les colonnes CHAR2(n) en VARCHAR2(n CHAR)
David Fouejio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2012, 16h45   #4
Waldar
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 6 278
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 35
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2008
Messages : 6 278
Points : 13 568
Points : 13 568
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Si ça peut vous aider :
Code :
1
2
3
4
5
6
7
  SELECT 'ALTER TABLE ' || owner || '.' || table_name || ' MODIFY(' ||
         column_name || ' ' || data_type || '(' || data_length || ' CHAR));' AS req
    FROM dba_tab_columns
   WHERE data_type IN ('CHAR', 'VARCHAR2')
     AND char_used = 'B'
     AND owner = '<votre_user>'
ORDER BY owner ASC, table_name ASC, column_id ASC;
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2012, 11h16   #5
David Fouejio
Membre du Club
 
Inscription : janvier 2006
Messages : 144
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 144
Points : 64
Points : 64
Merci Waldar pour la requête.
Je l'avais déjà mais je ne savais pas que le Type CHAR acceptait la syntaxe CHAR(n CHAR)
Je vais l'appliquer
David Fouejio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h13.


 
 
 
 
Partenaires

Hébergement Web