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 :

Enlever les balises html d'une colonne


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Enlever les balises html d'une colonne
    Bonjour,

    Je voudrais enlever toutes les balises html d'une colonne. J'ai récupéré du code mysql qui faisait cela et je l'ai "traduit" en pl/sql ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHILE instr(ligne2, '<') and instr(ligne2, '>') LOOP
        ligne2 := REPLACE(ligne2,SUBSTRING(ligne2,instr(ligne2, '<'),instr(ligne2, '>')-instr(ligne2, '<')+1),'');
    END LOOP;
    Mais j'ai l'erreur suivante :

    WHILE instr(ligne2, '<') and instr(ligne2, '>') LOOP
    *
    ERREUR à la ligne 112 :
    ORA-06550: Ligne 112, colonne 10 :
    PLS-00382: expression du mauvais type
    ORA-06550: Ligne 112, colonne 4 :
    PL/SQL: Statement ignored

    Pouvez-vous m'aider, s'il vous plait ?


  2. #2
    Membre habitué
    Inscrit en
    Septembre 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 82
    Points : 140
    Points
    140
    Par défaut
    Salut,

    Sans vouloir te décourager, ce n'est pas une mince à faire. Mais voici une petite expression régulière qui pourrait t'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT REGEXP_REPLACE(champ_avec_html, '<[^>]*>','') 
      FROM ma_table;

    Celle-ci remplace tout ce qui est compris entre deux <> par rien. Le ^ dans un [] veut dire "sauf". Mais c'est certain, ceci ne résoudra pas tout tes problèmes. Que se passe-t-il si un tag est mal fermé? Que se passe-t-il si ta page contient elle-même des <> qui ne sont pas mis &lt; ou &gt; ?... Je te dis, le problème est complexe.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    J'ai essayé ta solution et elle fonctionne.
    Par contre, tu as raison, j'ai le problème des &nbsp, etc qui reste.

    Et ça, je n'ai pas encore trouvé de solution pour virer ces caractères car le "&" bloque à chaque fois.

    Si tu as une idée pour les '&...', car je galère .

    Merci

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    J'ai trouvé la réponse pour les "&", je te remercie pour ta solution.


  5. #5
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Salut,

    Que veux tu dire par ça bloque à chaque fois ?

    Et ça, je n'ai pas encore trouvé de solution pour virer ces caractères car le "&" bloque à chaque fois.
    Si tu as un problème au niveau de l'interprétation du symbole "&" , tu peux toujours faire un REPLACE dans ta chaîne de caractères par CHR(38) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLACE('Test & co','&',CHR(38) )  FROM DUAL

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

Discussions similaires

  1. Enlever les balises HTML d'une chaine de caractère
    Par okoweb dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2011, 17h19
  2. retirer les balises html d'une chaine de caractères
    Par johnaliashead dans le forum C#
    Réponses: 11
    Dernier message: 30/09/2010, 09h55
  3. enlever les balises html dans le résultat
    Par kaayna dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/02/2010, 14h01
  4. treplace regex pour enlever les balises html
    Par briceg dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 23/10/2009, 10h47
  5. Script pour enlever les balises html
    Par Scratch48 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 17h16

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