Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/11/2012, 10h33   #1
cec38ch
Invité de passage
 
Femme
Ingénieur développement logiciels
Inscription : juillet 2012
Messages : 8
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 : 8
Points : 4
Points : 4
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 :
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 :

Citation:
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 ?

cec38ch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 10h47   #2
amir.
Membre habitué
 
Inscription : septembre 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 74
Points : 115
Points : 115
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 :
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.
amir. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 11h08   #3
cec38ch
Invité de passage
 
Femme
Ingénieur développement logiciels
Inscription : juillet 2012
Messages : 8
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 : 8
Points : 4
Points : 4
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
cec38ch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 11h14   #4
cec38ch
Invité de passage
 
Femme
Ingénieur développement logiciels
Inscription : juillet 2012
Messages : 8
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 : 8
Points : 4
Points : 4
J'ai trouvé la réponse pour les "&", je te remercie pour ta solution.

cec38ch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 11h22   #5
Bibeleuh
Membre éclairé
 
Avatar de Bibeleuh
 
Homme Richard
Développeur PL/SQL
Inscription : septembre 2010
Messages : 132
Détails du profil
Informations personnelles :
Nom : Homme Richard
Localisation : France

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

Informations forums :
Inscription : septembre 2010
Messages : 132
Points : 348
Points : 348
Salut,

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

Citation:
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 :
SELECT REPLACE('Test & co','&',CHR(38) )  FROM DUAL
Bibeleuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web