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

PL/SQL Oracle Discussion :

Extraire une chaîne de caractères


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Extraire une chaîne de caractères
    Bonsoir à tous,

    Comme le nom de l'intitulé l'indique, je cherche à extraire des chaines de caractères qui sont en fait séparés par des "|" et précédé de ':' en pl/sql.
    En effet, j'ai par exemple ceci :
    :chaine1| blabla :chaine2| blabla :chaine3|

    J'aimerais alors pouvoir extraire les 3 mots suivants : chaine1, chaine2, chaine3
    j'ai tenté de faire quelques petit truc notamment via les expressions régulières mais je n'ai pas réussi à obtenir le résultat...

    Je vous remercie d'avance pour vos aides

    Cordialement,
    Liz

  2. #2
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Pourtant les expressions régulières peuvent le faire :

    Il "suffit" de créer une fonction récursive :
    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
    create or replace function all_fields 
      ( c in varchar2
      , dd in varchar2
      , df in varchar2
      , cf in number := 1 ) return varchar2 is
     ret varchar2(32767) ;
    begin
     ret := regexp_substr( c, dd||'[^'||df||']+', 1, cf ) ;
     if ( ret is null or ret = '' ) then
      return '';
     else
      return regexp_replace( regexp_replace(ret, dd, '') ||','|| all_fields ( c, dd, df, cf+1 ) , ',$' ,'') ;
     end if;
    end;
    /
    et de l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select all_fields( chaine, '\:','\|' ) rs 
    from ( select ':chaine1| blabla :chaine2| blabla :chaine3|' chaine
           from dual )
     
    RS
    ----------------------------------------
    chaine1,chaine2,chaine3

  3. #3
    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
    Utilisez InStr, SubStr, etc.

Discussions similaires

  1. Extraire une chaîne de caractères
    Par Kestion100 dans le forum Excel
    Réponses: 7
    Dernier message: 16/03/2015, 08h45
  2. Réponses: 22
    Dernier message: 22/10/2012, 21h53
  3. Réponses: 3
    Dernier message: 22/09/2012, 13h38
  4. Réponses: 4
    Dernier message: 27/08/2010, 04h57
  5. Extraire une chaîne de caractères d'une chaîne
    Par dj-julio dans le forum Excel
    Réponses: 13
    Dernier message: 21/09/2007, 11h05

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