Bonjour tout le monde,
Je galère pour connaître la meilleure solution pour récupérer une partie d'une chaine.
Voici quelques exemples de chaine :
Explication : je souhaite récupérer les chaines "des jonquilles", "sud" et "leclerc" sachant que j'ai déjà déterminé les types "RUE", "ZI" et "CC"."RUE des jonquilles ZI sud CC leclerc"
"RUE des jonquilles "
"RUE des jonquilles ZI sud"
"CC leclerc RUE des jonquilles"
type_voie = 'RUE', type_lieu = 'ZI', type_secteur = 'CC'.
Mon code fonctionne quand j'ai les 3 types mais quand j'ai 1 ou 2 types, ça ne fonctionne plus puisqu'un type est à blanc.
Mon code :
traduit, ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ma_rue = 'RUE des jonquilles ZI sud CC leclerc', type_voie = 'RUE', type_lieu = 'ZI', type_secteur = 'CC'. SELECT REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(ma_rue, '^.*'||type_voie||'.', ' '), type_lieu || '.*$', ''), type_secteur || '.*$', '') FROM DUAL;
Avec ce code j'ai récupère "des jonquilles" et je lance 2 fois ce code en changeant type_voie par type_lieu puis type_secteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE('RUE des jonquilles ZI sud CC leclerc', '^.*RUE.', ' '), 'ZI.*$', ''), 'CC.*$', '') from dual;
* Merci *
Partager