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

Import/Export Oracle Discussion :

Problème character set


Sujet :

Import/Export Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut Problème character set
    Bonjour,

    J'ai envoyé un dump à mon fournisseur logiciel, notre base est en NLS_LANG à CANADIAN FRENCH_CANADA.WE8MSWIN1252 et le NCHAR character set à AL16UTF16.c

    De son côté, la base est en AMERICAN_AMERICA.WE8MSWIN1252 avec le NCHAR character set à AL32UTF8.

    Il croit que c'est le problème de son importation qui plante avec 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 XXX

    Puis-je convertir ma base avec EXP afin qu'il n'ait pas de problème pour l'import?

    Merci!

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Il faut bien distinguer la variable d'environnement NLS_LANG, et le jeu de caractères de la base.

    Vous pouvez contrôler ce dernier simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select property_name, property_value 
    from database_properties
    where property_name like '%CHARACTERSET%';
    Quel est le résultat sur les bases respectives ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut
    Après avoir reçu la réponse du fournisseur, c'est comme vous avez dit, le character set qui est en cause. Voici l'information.

    Sur la base source:

    NLS_CHARACTERSET
    WE8MSWIN1252

    NLS_NCHAR_CHARACTERSET
    AL16UTF16

    Sur la base cible:

    NLS_CHARACTERSET
    AL32UTF8

    NLS_NCHAR_CHARACTERSET
    AL16UTF16

    Maintenant, comment puis-je exporter de WE8MSWIN1252 à AL32UTF8 via EXP? A moins qu'une commande existe avec IMP?

    Merci!

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    A mon sens, c'est à votre fournisseur de se débrouiller : qu'il crée une base en WE8MSWIN1252, et il n'aura pas de souci à importer vos données.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut
    D'accord, mais à ce que j'en comprends, il n'y a rien à faire que de créer une nouvelle base?

    Merci!

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par nmathon Voir le message
    D'accord, mais à ce que j'en comprends, il n'y a rien à faire que de créer une nouvelle base?
    Votre fournisseur a besoin pour une raison quelconque de dupliquer vos données ? Il y en a pour 10 minutes pour créer une base vide "jetable" avec le jeu de caractères de son choix.

    De votre côté c'est votre base de prod je suppose, donc il n'y a pas de raison de la bricoler.
    Et si vous vouliez le faire, vous y passeriez bien plus que 10 minutes, sans parler des risques sur votre production.

    Quelle est votre version au fait ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 109
    Points : 71
    Points
    71
    Par défaut
    11g R2

    Évidemment, c'est plus simple pour lui de créer une nouvelle base vide. Je posais la question au cas où j'aurais pu ajouter un argument à la commande EXP qui aurait fait une conversion de mon character set au sien mais ça ne semble pas le cas!

    Merci!

  8. #8
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Dans votre cas, la base source utilise un octet par caractère, alors que la base cible utilise dans certains cas plusieurs octets par caractère.

    Par défaut, un VARCHAR2(10) s'entend comme supportant une longueur maximale de 10 octets, or dans la base cible 10 octets ne suffiront pas forcément à stocker 10 caractères, d'où votre erreur à l'import.

    Donc, dans le principe, ce qu'il faudrait, c'est que l'export enregistre dans le fichier DMP un VARCHAR2(10 CHAR) alors qu'en base c'est VARCHAR2(10 BYTE).
    Une telle option n'existe pas avec l'export classique (EXP).

    Comme vous êtes en V11, vous devriez plutôt utiliser Datapump, mais ses options normales ne permettent pas non plus une telle conversion.
    C'est peut-être possible en faisant l'export en PL/SQL (avec DBMS_METADATA + DBMS_DATAPUMP), si vous avez une soirée d'hiver à gaspiller...
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

Discussions similaires

  1. Problème character set
    Par ridoo dans le forum Administration
    Réponses: 0
    Dernier message: 30/06/2011, 08h57
  2. problème de character set
    Par anouarm dans le forum Installation
    Réponses: 26
    Dernier message: 22/07/2010, 21h43
  3. Problème de CHARACTERS SET
    Par genio dans le forum Oracle
    Réponses: 6
    Dernier message: 29/11/2005, 14h38
  4. Réponses: 17
    Dernier message: 07/10/2004, 18h05
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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