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 :

[Character SET] Modifier un caractére


Sujet :

Oracle

  1. #1
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut [Character SET] Modifier un caractére
    Bonjour ,

    une base de donnée a été chargée avec un mauvais caractére à la place
    de l' euro .
    le caractére est pour oracle le chr(191), l' euro est chr(128) .

    connaissez vous une méthode pour remplacer le caractére qui se trouve dans une colonne de la base mais à n' importe quelle position .
    (champs en varchar2 )
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    141,84 m² x 17,28 ¿/m² = 2 451,00 ¿
    nous sommes en oracle 8.1.7.4

    cdlt

  2. #2
    Membre averti

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Points : 398
    Points
    398
    Par défaut
    utilise la fonction translate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL>select translate(txt,chr(191),chr(128)) new,txt old
      2  from 
      3  (select '141,84 m² x 17,28 '||chr(191)||'/m² = 2 451,00 '||chr(191) txt from dual);
    NEW                                 OLD
    ----------------------------------- -----------------------------------
    141,84 m² x 17,28 €/m² = 2 451,00 € 141,84 m² x 17,28 ¿/m² = 2 451,00 ¿
     
    Ecoulé : 00 :00 :00.00

  3. #3
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    je te remercie, je vais regarder mais le cas cité est un exemple,
    je ne connais pas le contenu du champs uniquement que c' est du varchar2!

  4. #4
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    le pb a éré résolu ainsi :

    update CORFOU.D21V1_TITLIB
    set CORFOU.D21V1_TITLIB.C01=replace(CORFOU.D21V1_TITLIB.C01,'¿','€')
    where CORFOU.D21V1_TITLIB.C01 LIKE '%¿%'
    j' aurais voulu utiliser le code hexa ou ascci mais cela semble difficile dans le like .

    cdlt

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Citation Envoyé par ducho

    j' aurais voulu utiliser le code hexa ou ascci mais cela semble difficile dans le like .
    Pas tant que ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    update CORFOU.D21V1_TITLIB
    set CORFOU.D21V1_TITLIB.C01=replace(CORFOU.D21V1_TITLIB.C01,chr(191),'€')
    where CORFOU.D21V1_TITLIB.C01 LIKE '%'||chr(191)||'%'

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 7
    Points
    7
    Par défaut 191 n'est pas le bon code
    191 est le code oraclepour le point d'interrogation inversé. Il remplace TOUS les codes qu'Oracle n'a pas pu interpréter, à l'exception des codes "libres" 0x80 à 0x8F de ISO8859-1 qui ne sont pas modifiés
    Le "bon" code pour l'Euro est 128, il sera bien restitué dans le jeu de caractères Windows.
    Si on remplace 191 par 128, on risque de voir apparaitre des symboles Euro où cela n'est pas souhaité.

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 24/01/2009, 23h24
  2. [9i] Modifier character set d'une bdd
    Par user_oracle dans le forum Oracle
    Réponses: 9
    Dernier message: 22/02/2006, 12h08
  3. [Oracle9i] modifier le character set d'une bd?
    Par osmoze dans le forum Oracle
    Réponses: 8
    Dernier message: 16/02/2005, 13h29
  4. IB 6.0.1 - Win XP - Character Set
    Par SuperTotor dans le forum InterBase
    Réponses: 4
    Dernier message: 03/06/2003, 20h25
  5. character set // Nls_lang
    Par fopicht dans le forum Oracle
    Réponses: 2
    Dernier message: 23/05/2002, 12h04

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