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 :

Problème de débutant avec regex


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Problème de débutant avec regex
    bonjour à tous,

    comme dit dans le titre je suis débutant et je butte sur un regex.

    je dois chercher dans les sources d'une BDD les procédures, les packages etc... et exporter le résultat des requêtes dans un fichier csv.

    mais mon tuteur de stage veut que je gère les commentaires. J'ai donc pensé à remplacer les "--" et "/*" et "*/" contenus dans le code par "<commentaires>".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select REGEXP_REPLACE(TEXT, '--' , '  <commentaire>  ') from all_source where name like 'XX%';
    ça fonctionne avec 1 arguments mais je n'arrive pas à y inclure les "/*" et "*/".

    je n'arrive pas à inclure ça dans mon code que voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CURSOR curs1 IS
            SELECT DISTINCT NAME, TYPE,LINE,TEXT
            FROM ALL_SOURCE
            WHERE NAME LIKE 'XX%' AND type LIKE upper('&critère')
                                 ORDER BY name ASC, line ASC;
    quelqu'un pourrait-il m'apporter son aide svp ?

    merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    pour étayer un peu ma question, voila la "sortie" de mon curseur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     FOR cursor1 IN curs1
         	LOOP
          DBMS_OUTPUT.PUT_LINE (cursor1.name||'   '||cursor1.type ||'   '||cursor1.line||'  '||cursor1.text);
        	END LOOP;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 37
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Un exemple de résolution via un case/when te permettant d'utiliser un IN :
    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
     
    with all_source as 
    (select '-- ma ligne 1' text from dual union
    select '/* ma ligne 2' text from dual union
    select '*/ ma ligne 3' text from dual union
    select 'test ma ligne 4' text from dual 
    ) 
    select (case when substr(TEXT,0,2) in ('--','/*','*/') then replace(TEXT, substr(TEXT,0,2), ' <commentaire> ') else text end)
    FROM all_source ;
     
    /*
     <commentaire>  ma ligne 3
     <commentaire>  ma ligne 1
     <commentaire>  ma ligne 2
    test ma ligne 4
    */
    Sinon tu peux préférer un replace(replace(replace( ... ; je n'ai pas d'autres idées pour ma part.

    Edit : ajout d'une 4ème ligne dans l'exemple et correction du case/when

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    merci pour ta réponse mais j'ai beau retourner mon code dans tous les sens, ça ne marche pas...

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 79
    Points : 170
    Points
    170
    Par défaut
    Salut, je ne suis pas sûr d'avoir compris tous les tenants et aboutissants, mais pourquoi ne pas faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REGEXP_REPLACE(TEXT, '\/\*|\*\/|--' , '  <commentaire>  ') FROM all_source WHERE name LIKE 'XX%';
    (il faut échapper les "/" et les "*" dans des regex)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    nickel !!!

    un grand merci c'est exactement ce qu'il me fallait

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

Discussions similaires

  1. Petit problème de débutant avec les tableaux
    Par crazy_zakaria dans le forum Débuter
    Réponses: 10
    Dernier message: 20/11/2009, 10h25
  2. Problème sur split avec regex
    Par fr1man dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2009, 13h46
  3. Problème [gros débutant!] avec malloc
    Par Nival dans le forum Débuter
    Réponses: 5
    Dernier message: 13/03/2009, 17h05
  4. problème de débutant avec la librairie glut sous dev C++
    Par mozillo3625 dans le forum Windows
    Réponses: 0
    Dernier message: 30/11/2007, 22h56
  5. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 11h22

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