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

SQL Oracle Discussion :

Migration ISO-8859-1 -> UTF-8


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Par défaut Migration ISO-8859-1 -> UTF-8
    Bonjour,
    Je dois faire des migrations de données d'une base à une autre, la première utilise un jeu de caractères ISO et l'autre utf8. Le problème survient donc lorsque dans ma base j'ai par exemple un varchar2(5) qui contient une chaine de caractère de longueur 5 avec un caractère dont la valeur ASCII est suppérieure à 127; à la migration je prend un dépassement de taille dans les dents.
    Je dois donc détecter le nombre de caractères ayant un code ASCII > 127 dans ma chaine.
    La seule méthode que je vois est de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    length(maCol) - length(trim(maCol,chr(128)chr(129)...chr(255)))
    Voyez vous autre chose?

  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
    Par défaut
    Comment migrez-vous ? import/export ?


    attention : l'import recréé les tables à l'identique, quelque soit la valeur de NLS_LENGTH_SEMANTICS
    Il faut mieux donc créer les tables vides dans la base UTF avant de faire l'import des données seules !
    (vous créerez alors des tables avec VARCHAR2(n CHAR) et non avec VARCHAR2(n BYTE) qui est la valeur par défaut en ISO)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Par défaut
    La migration se fait vers du DB2 sur gros systeme je crois et je n'ai pas la main sur cette procedure de migration.

  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
    Par défaut
    et ?
    c'est quoi cette procédure ?

    dans tous les cas, vous exportez normalement au format ISO et à l'import, vous spécifiez que c'est un fichier ISO et l'outil d'import devra se charger d'effectuer la conversion d'encodage

    mais c'est sûr que si vous ne lui dite pas que c'est de l'ISO et qu'il croit que c'est de l'UTF, ça va coincer, sauf si vous réalisez la conversion à l'export.

    mais pour ça, faudrait savoir comment vous effectuez cette migration

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Par défaut
    Je ne sais pas comment est effectuée cette migration ni par qui ou pourquoi et je ne peux pas le savoir a priori.
    Donc du coups j'utilise une méthode proche de ce que j'ai décrit mais c pas optimal.
    C'est sur que si je pouvais paramétrer l'export ça serait mieux.
    En tout cas merci de votre aide

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Très probablement ça sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    create Or replace Type str2tblchType as table of char(1)
    /
     
    create or replace function str2tblch ( 
      p_str in varchar2
    ) return str2tblchType
    as
      l_str Varchar2(10) := p_str;
      l_data str2tblchType:= str2tblchType();
    begin
      For i in 1..length(p_str)
      Loop
        l_data.extend;
        l_data(l_data.count) := SubStr(l_str,1,1); 
        l_str := SubStr(p_str,i+1);
      End Loop;
      --
      return l_data; 
    end;
    /
     
    Select distinct a.ename --, b.column_value, ascii(b.column_value)
      From scott.emp a, table (str2tblch (a.ename) ) b
    Where Ascii(b.column_value) > 80
    /
     
    ENAME
    ----------
    JONES
    FORD
    CLARK
    MILLER
    SMITH
    WARD
    MARTIN
    SCOTT
    TURNER
    ADAMS
    JAMES

  7. #7
    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
    Par défaut
    Citation Envoyé par HurtMarley Voir le message
    Je ne sais pas comment est effectuée cette migration ni par qui ou pourquoi et je ne peux pas le savoir a priori.
    Donc du coups j'utilise une méthode proche de ce que j'ai décrit mais c pas optimal.
    C'est sur que si je pouvais paramétrer l'export ça serait mieux.
    En tout cas merci de votre aide
    Donc vous ne pouvez pas paramétrer la sortie des données de la base Oracle
    quant à l'intégration des données dans la base DB2, vous ne savez pas comment elle se fait ni rien

    et vous attendez quoi de nous ????

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

Discussions similaires

  1. Problème migration iso-8859-1 vers utf-8
    Par Loki13 dans le forum ASP
    Réponses: 9
    Dernier message: 20/07/2011, 09h24
  2. [XML] de ISO-8859-1 à UTF-8
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 11h32
  3. ISO-8859-1 et UTF-8
    Par NizarK dans le forum Documents
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  4. Réponses: 1
    Dernier message: 05/12/2006, 16h54
  5. conversion iso-8859-1 vers utf-8
    Par gorgonite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 12h49

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