{Oracle} Expression regulière

[Résolu/Fermé]
Signaler
Messages postés
31
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
24 mars 2010
-
Messages postés
31
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
24 mars 2010
-
Bonjour,

j veux faire une expression régulière sous oracle(SQL) qui peut:
- valider un numéro ou un réel (INTEGER or FLOAT),
- ce numéro (ou réel) doit être borné ( dans un intervalle qui va être donner par l'utilisateur),
- de plus dans cette expression les nombres des chiffres avant/après le virgule doit être dynamique ( donner par un utilisateur).
mon problème consiste dans la dernier point ; j'arrive pas résoudre.

voici mon essai : '^'||v_min||'$|^[1-4]{0,1}\d{1}(.\d{1,2})?$|^'||v_max||'$'

avec v_min et v_max : deux variables dynamiques.

SVP est ce qu'il y a quelqu'un que peut m'aider? c 'est urgent!!!

Merci d'avance ,
cordialement.

1 réponse

Messages postés
31
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
24 mars 2010
3
j'ai trouver la solution ;

voici la solution:
on ajout cette ligne dans un trigger :

REGEXP_LIKE(:new.NomChamp,'^\d{0,'||v_DSize||'}(.\d{0,'||v_ESize||'})?$')
AND ((:new.NomChamp = v_min)OR(:new.NomChamp > v_min))
AND ((:new.NomChamp = v_max)OR(:new.NomChamp < v_max));

avec v_ESize et v_DSize : représente le nombre des chiffres avant et après la virgule