Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, et autres ressources sur Oracle et ses technologies
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 16h06   #1
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 979
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 979
Points : 1 685
Points : 1 685
Par défaut [FAQ] Expression régulière avec SQL

Bonjour,
Lorsque que j'en ai eu besoin je n'ai pas trouvé d'info sur les expressions régulières pour Oracle dans la FAQ et/ou les tutos. J'ai du regarder dans le forum.
Je pense que c'est dommage parce que ça doit être une question régulière.
Voici donc ma contribution

Citation:
Comment utiliser une expression régulière dans Oracle ?

Syntaxe générale :
Code :
1
2
3
SELECT MaColonne
FROM MaTable
WHERE [NOT] regexp_like(MaColonne,'expression régulière')
Exemple concret :

Table :
Code :
1
2
3
4
5
Id | Immatriculation
1  | 124LO12
2  | 734UI45
3  | 459HJ03
4  | 484BG45
Nous voulons les immatriculations qui terminent par 45.
Code :
1
2
3
SELECT Id 
FROM MaTable
WHERE [NOT] regexp_like(Immatriculation,'[0-9]{3}[A-Z]{2}45')
Résultat :
Code :
1
2
3
Id | Immatriculation
2  | 734UI45
4  | 484BG45
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/12/2011, 12h04   #2
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 979
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 979
Points : 1 685
Points : 1 685
Dans le même genre, pour remplacer une expression régulière :

Syntaxe générale :
Code :
1
2
SELECT regexp_replace(MaColonne,'expression régulière','texte de remplacement',OPTION)
FROM MaTable


Exemple concret :

Table :
Code :
1
2
3
4
5
Num
158-4632#4589
245-6321#5896
159-7463#5489
269-7532#8956
Pour une raison quelconque nous voulons remplacer les chiffres 2, 3 et # par x.

Code :
1
2
SELECT regexp_replace(Num,'[23#]','x','g')
FROM MaTable
Résultat :
Code :
1
2
3
4
5
Num
158-46xxx4589
x45-6xx1x5896
159-746xx5489
x69-75xxx8956
L'option 'g' permet d'appliquer le replace à toutes les occurrences du champs, dans le cas où elle n'aurait pas été utilisée voici le résultat qui aurait été obtenu :
Code :
1
2
3
4
5
Num
158-46x2#4589
x45-6321#5896
159-746x#5489
x69-7532#8956
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h33.


 
 
 
 
Partenaires

Hébergement Web