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 :

Manipulation de chaînes de caractères


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Femme Profil pro
    requêteur sur base oracle avec SQL DEVELOPPER
    Inscrit en
    Avril 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : requêteur sur base oracle avec SQL DEVELOPPER

    Informations forums :
    Inscription : Avril 2022
    Messages : 17
    Par défaut Manipulation de chaînes de caractères
    Bonjour à tous.

    Je ne suis pas sûre d'avoir créé correctement ma demande d'aide Je la poste donc de nouveau en inspérant être au bon endroit

    Je suis désolée de vous solliciter mais je n'ai pas trouvé (ou su trouver) d'exemples s'approchant de mon besoin.

    J'ai une chaîne de caractères "aaaaa_bbbbb_ccccc" que je souhaite découper en 3 chaînes "aaaaa" "bbbbb" "ccccc".

    De façon simple avec INSTR, je trouve la position du 1er "_" et donc j'arrive à créer "aaaaa" et "bbbbb_ccccc".

    Je n'arrive pas, de façon simple, sans créer de champs intermédiaires, à obtenir mes 3 chaînes.

    Je vais continuer à chercher mais si quelqu'un peut m'aider, je l'en remercie par avance.

    Bien à vous.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 169
    Par défaut
    Bonjour,

    Le plus simple c'est d'utiliser la fonction REGEXP_SUBSTR qui te permet de faire une extraction de chaines de caractères en précisant une expression régulière et l'occurrence souhaitée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    with input_data as (select 'aaaaa_bbbbb_ccccc' str from dual)
    select regexp_substr(str, '[^_]+') chaine1,
           regexp_substr(str, '[^_]+', 1, 2) chaine2,
           regexp_substr(str, '[^_]+', 1, 3) chaine3
    from input_data;

  3. #3
    Membre averti
    Femme Profil pro
    requêteur sur base oracle avec SQL DEVELOPPER
    Inscrit en
    Avril 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : requêteur sur base oracle avec SQL DEVELOPPER

    Informations forums :
    Inscription : Avril 2022
    Messages : 17
    Par défaut
    Comment vous remerciez 'vanagreg'
    ça marche très bien, je connaissais 'reqexp' sans l'utiliser fréquemment, le plus souvent associer à count pour trouver le nombre d'occurrences d'une chaîne1 dans une chaîne 2
    Exemple : regexp_count(str, '[^_]+')-1
    Encore merci et bonne fin de journée

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Et pour une chaine de caractères contenant un nombre de '_' non forcément connu au préalable on peut utiliser ceci


    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
    with 
      input_data as 
          (select 'aaaaa_bbbbb_ccccc_yyy_zzxx' str from dual)
    select 
        regexp_substr(str, '[^_]+',1,level) chaine1
    from 
        input_data
    connect by 
       level <= regexp_count(str ,'_') +1;
     
     
    CHAINE1
    ----------
    aaaaa
    bbbbb
    ccccc
    yyy
    zzxx
    Bien à vous
    Mohamed Houri

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

Discussions similaires

  1. MFC + Manipuler les chaînes de caractères
    Par mqsi dans le forum MFC
    Réponses: 2
    Dernier message: 15/11/2006, 16h24
  2. Manipulation de chaînes de caractères
    Par carreau dans le forum Contribuez
    Réponses: 1
    Dernier message: 26/10/2006, 10h46
  3. Manipulation de chaînes de caractères
    Par sbeprod dans le forum Access
    Réponses: 15
    Dernier message: 28/07/2006, 14h33
  4. Réponses: 3
    Dernier message: 07/12/2005, 10h09
  5. Etat - Manipulation de chaînes de caractères
    Par migaleb dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 09h55

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