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 :

Formater un numéro de téléphone


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 29
    Points
    29
    Par défaut Formater un numéro de téléphone
    Bonjour à tous,

    J'ai une table "ma_table" qui contient un champ téléphone "tel".
    Quand j'exécute cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tel
    FROM ma_table
    J'obtiens '0101010101' par exemple.

    J'aimerais que mon SELECT me retourne '01 01 01 01 01'.

    J'ai regardé sur le net avant de poster et j'ai trouvé la fonction FORMAT.

    J'ai donc testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT FORMAT(tel, '00 00 00 00 00')
    FROM ma_table
    mais j'obtiens l'erreur suivante : ORA-00904: "FORMAT" : identificateur non valide.

    Avez-vous une idée ?

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Effectivement, à partir du moment où la fonction n'existe pas...

    Si ta chaîne et donc ton format est de longueur fixe, utilise SUBSTR pour découper en morceaux et || pour concaténer ces morceaux avec des espaces.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2009
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Nickel merci pacmann.

    Je mets le post en résolu.

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Peut être avec l'aide des expressions régulières si ta base est >=10g
    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
     
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
    Connected as mni
     
    SQL> 
    SQL> with data as (
      2  select '0101010101' as tel from dual Union all
      3  select '5648753299' as tel from dual
      4  )
      5  select tel, regexp_replace(tel,'([[:digit:]]{2})','\1 ') tel_f
      6    from data
      7  /
     
    TEL        TEL_F
    ---------- --------------------------------------------------------------------------------
    0101010101 01 01 01 01 01
    5648753299 56 48 75 32 99

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    to_char(tel,'FM00G00G00G00','NLS_NUMERIC_CHARACTERS=''. ''')

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Il manque un "G00" dans le masque !
    Oracle ne râle pas de faire un to_char sur une chaîne de caractère ?

  7. #7
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Waldar Voir le message
    ...
    Oracle ne râle pas de faire un to_char sur une chaîne de caractère ?
    Il semble que non ?! To_Char(character)

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    to_char(character) n'admet pas de fmt.

    en fait je fais implicitement

    to_char(to_number(tel),fmt,nls)

    ce qui est tres moche ... car si tel n'est pas numerique, ca plante...

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

Discussions similaires

  1. Formater un numéro de téléphone
    Par neuneu1 dans le forum Langage
    Réponses: 8
    Dernier message: 01/07/2012, 08h00
  2. Formater un numéro de téléphone belge
    Par Zarvox dans le forum Langage
    Réponses: 8
    Dernier message: 19/08/2010, 13h27
  3. Formater un numéro de téléphone en VBS
    Par neo76910 dans le forum VBScript
    Réponses: 2
    Dernier message: 27/07/2009, 11h53
  4. Formater un numéro de téléphone.
    Par maXrez dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/01/2008, 16h34
  5. [RegEx] Format de numéro de téléphone
    Par Heilong dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2007, 21h07

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