IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Problème lors de l'import de Oracle 9i à XE


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 43
    Points
    43
    Par défaut Problème lors de l'import de Oracle 9i à XE
    Bonjour,

    Quand j'importe mon dump de oracle 9i à XE. j'ai l'erreur suivante :
    IMP-00019: row rejected due to ORACLE error 12899
    IMP-00003: ORACLE error 12899 encountered
    ORA-12899: value too large for column "ID_FILSEK"."AD_T_COMMUNICATION_USR"."ABREGE" (actual: 21, maximum: 20)
    Column 1 02-AUG-2001:11:57:00
    Column 2 PA
    Column 3 1
    Column 4 27-FEB-2004:11:23:47
    Column 5 Idinfo
    Column 6 5
    Column 7 2
    Column 8
    Column 9
    Column 10 1
    Column 11 TEL_PRINC
    Column 12 10
    Column 13 1
    Column 14 Téléphone principal
    Column 15 Téléphone principal
    Column 16
    Column 17
    En cherchant sur Internet, j'ai trouvé que je passais des caractères "single-byte" à "multi-byte". Pourtant en comparant les paramètres NLS de mes deux base, il n'y a que NLS_CHARACTERSET qui change (9i WE8ISO8859P15, XE AL32UTF8) et la version! Pourtant en modifiant NLS_CHARACTERSET de ma base XE de AL32UTF8 à WE8ISO8859P15, j'ai toujours le problème de conversion.

    Est-ce que quelqu'un pourrait m'aider, svp???

    Merci d'avance,

    Cédric

    Edit par bouyao :

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    "il n'y a que".... c'est un euphémisme j'espère !
    parce que le character set, c'est primordial.

    Le problème est que la table existe dans la base cible, non ?

    et vous avez recréé la base XE en WE8ISO8859P15 ?
    ou vous avez juste modifié votre NLS_LANG ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 43
    Points
    43
    Par défaut
    Oui, c'était un euphémisme!

    Non, la base OracleXE est "vierge". Et quand j'ai changé mon paramètre, j'ai redémarrer OracleXE pour que la modification soit prise en compte.

    Ensuite, j'ai importé mon dump. Et j'ai eu le message d'erreur cité plus haut.

    Je crois que cela a avoir avec le parametre INTERNAL_USE qui utilise des caractère sur 7bits(unicode) et que sur Oracle 9i c'est sur 8bit(Western Europe).

  4. #4
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    comment diable avez-vous modifié votre base XE pour passer de UTF à ISO ???
    Et essayer créez la table vide (imp rows=N) et modifiez les colonnes 14 et 15 pour y rajouter au moins 2 caractères (de varchar2(19) ou varchar2(20) à varchar2(22) ou idéalement varchar2(20 char)).

    ensuite, relancez l'import

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 43
    Points
    43
    Par défaut
    Afin de pouvoir recharger ma base j'ai effectué cette méthode :

    1.Install non-Unicode OracleXE
    2. Entrée les commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SQLPLUS /NOLOG 
    SQL> CONNNECT / AS SYSDBA
    SQL> SHUTDOWN IMMEDIATE; 
    SQL> STARTUP MOUNT; 
    SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 
    SQL> ALTER DATABASE OPEN; 
    SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE EE8MSWIN1250; 
    SQL> SHUTDOWN; 
    SQL> STARTUP;
    Sauf que je n'ai pas encore réussi! Car quand j'exécute le "startup mount", Oracle me retourne l'erreur suivante : "ORA-12514 TNS:listener does not currently know of service requested". Je n'ai pas trouvé le fichier TNS pour la base XE. Et j'avoue que je ne comprend pas pourquoi, il ne veut pas me la remonter!!!

    Précision :
    La largeur des colonnes respecte une norme interne et je ne peux pas modifier leur taille.

    Edit par bouyao :

  6. #6
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    NON !! Ce n'est pas comme ça qu'on change un character set !

    1. Que voulez-vous ? une base XE en UTF ou pas ?
    à ce moment là, refaites l'installation.

    2. ne faites pas des "bidouilles" du style INTERNAL_USE sans avoir pris un max. de précautions ni en pleine connaissance de cause

    3. relancez l'import

    PS : pour la norme interne, je comprends, mais si la base est UTF, un VARCHAR2(20 CHAR) est INDISPENSABLE puisque le é est codé sur 2 octets en UTF contre 1 seul en ISO !!!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 43
    Points
    43
    Par défaut
    A l'install de OracleXE, il ne propose pas le choix mettre UTF ou ISO! J'aimerais pouvoir remonter le dump sans avoir à faire des manipulations si c'est possible.

    En effet, j'ai trouvé une procédure qui permet de remonter mon dump (converion de single-byte en multi-byte). Sauf qu'elle génére d'autres erreurs.

    Pourriez-vous m'indiquez à quel moment je peux indiquer UTF ou ISO?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Points : 43
    Points
    43
    Par défaut
    Désolé, je viens re relire la doc d'install...

    J'ai téléchargé le mauvais fichier.

    Merci quand même de votre aide!

    Cédric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2007, 21h45
  2. Réponses: 4
    Dernier message: 04/04/2007, 07h46
  3. Problème lors de l'import d'une dll native.
    Par -Jolan- dans le forum C++/CLI
    Réponses: 4
    Dernier message: 21/02/2007, 12h18
  4. Réponses: 2
    Dernier message: 28/10/2005, 20h43
  5. Réponses: 3
    Dernier message: 08/12/2004, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo