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 :

Fonction qui retourne des chiffres Oracle 9I


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Par défaut Fonction qui retourne des chiffres Oracle 9I
    Bonjour,


    Faisant suite à ce sujet, je suis à la recherche d'une fonction sql Oracle 9I qui prend en entrée une chaîne de caractères et renvoie seulement les valeurs numériques :

    Équivalent de regexp_substr (Oracle 10G)

    Exemple : 2-34 /43 RUE RÉPUBLIQUE ==Fonction=> 2-34 /43

    Merci de votre aide !
    Cordialement

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut,

    Bah, t'as le truc un peu bourrin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT rtrim(lower('2-34 /43 RUE RÉPUBLIQUE'), 'abcdefghijklmnopqrstuvwxyzéàè ')
    from dual

  3. #3
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par baichoch Voir le message
    Exemple : 2-34 /43 RUE RÉPUBLIQUE ==Fonction=> 2-34 /43
    C'est une valeur numérique ça ? Il faut retourner 1.2093023255 ?

  4. #4
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Par défaut
    Bonjour;

    Merci de votre réponse, je vais essayer d'implémenter ça, Par contre cette fonction ne permet de gérer ce cas "XXXX 22 22 RUE DE LA REPUBLIQUE",

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT rtrim(lower('XXXXXX 22 22 RUE DE LA REPUBLIQUE'), 'abcdefghijklmnopqrstuvwxyzéàè ')
    FROM dual
    Résultat xxxxx 22 22


    Mon objectif final est d'extraire des chiffres, Ces chiffres ne seront pas forcément au début !


    Y-t-Il des trucs à ajouter a cette fonction pour l'adapter ??

    @pachot : Mon objectif final est d’extraire la partie qui contient les chiffres .

    Cordialement

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Il faudra bien lister tous les caractères spéciaux possibles et en partant du principe qu'il n'y a pas d'underscore à conserver dans les numéros des adresses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> SELECT trim(replace(translate(lower('XXXXXX 2-34 /43 RUE RÉPUBLIQUE')
      2                                , 'abcdefghijklmnopqrstuvwxyzéèàùôöûêÉÈÀÙÔÖÛÊ',
      3                                  '__________________________________________')
      4                     ,'_','')
      5              ) as c
      6  FROM dual;
     
    C
    --------
    2-34 /43
     
    SQL>

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Skuat, peut être en passant par un convert en ASCII ?

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Attention à la formulation de votre demande baichoch, quand vous demandez de n'extraire que les chiffres de la chaîne '2-34 /43 RUE RÉPUBLIQUE', la bonne réponse est '23443', ce qui n'est pas votre vrai besoin.

Discussions similaires

  1. Réponses: 15
    Dernier message: 05/10/2012, 19h08
  2. Fonction qui retourne des SCO
    Par rechercheh dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 04/10/2012, 18h10
  3. Réponses: 8
    Dernier message: 08/05/2009, 15h54
  4. fonction qui retourne des records
    Par r83 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 17/04/2009, 23h35
  5. Réponses: 9
    Dernier message: 08/08/2007, 11h35

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