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 :

Afficher des numéros de téléphone du style +33 45677774 et +1 4588875


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Afficher des numéros de téléphone du style +33 45677774 et +1 4588875
    Bonjour à tous,

    sous Oracle, sql version 10g.

    J'ai une table TABLE avec une colonne Phone.
    Je souhaite afficher tous les phone numbers qui ont une syntaxe bien précise:
    un '+' suivi de 1 à 3 bits (exemple: +33, +367, +1,...),
    un espace suivi de n'importe quoi en chiffres

    exemple: +33 123456789
    +1 657898753245789
    +456 5767843567

    l'idée est de fixer les 5 premiers bits, et de mettre ce que l'on veut en chiffres après cela.

    J'ai essayé le code ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select phone from TABLE
    where REGEXP_LIKE(phone,'\+([0-9] [0-9]{10}|[0-9]{11}|[0-9][0-9] [0-9]{9})')
    mais il m'affiche aussi les numéros du styles
    +3345677856789 (c'est a dire sans l'espace)... ou encore
    ++3457478909764355 (avec deux '+' )

    si quelqu'un aurait une idée, n'hésitez pas à me répondre svp!

  2. #2
    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
    Pour rester constructif voilà un tutoriel avec exemples qui vous seront peut être utile.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    oui mais le soucis est que je ne trouve pas ce qu'il me faut
    si quelqu'un d'autre peut, ce serait cool !

    merci

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where INSTR(phone,' ') < 4 AND SUBSTR(phone, 1) = '+' and IS_NUMBER(SUBSTR(phone,2, INSTR(phone,' '))
    avec IS_NUMBER qui est une fonction qui vérifie que c'est bien un nombre.

    J'ai pas testé, c'est juste une piste hein

  5. #5
    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
    Je vous propose cette expression.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With data As
    (select '+1 234' phone from dual union all
     select ' +2 234' phone from dual union all
     select '+1 ' phone from dual union all
     select '+1234' phone from dual
    )
    select * 
      from data
     Where REGEXP_LIKE(phone,'^\+([0-9]{1,3})[ ]([0-9]+)')

Discussions similaires

  1. [RegEx] Regexp pour matcher des numéros de téléphones
    Par m0ul3sh0t dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2010, 15h21
  2. Réponses: 21
    Dernier message: 31/07/2009, 16h08
  3. Réponses: 17
    Dernier message: 22/11/2008, 15h53
  4. Ne pas afficher des numéros de pages
    Par Eric06 dans le forum Mise en forme
    Réponses: 2
    Dernier message: 18/12/2006, 23h35
  5. Afficher un numéro de téléphone
    Par goldorax113 dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2006, 14h26

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