Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 12h06   #1
Membre habitué

 
Avatar de Nounoursonne
 
Inscription : mai 2002
Messages : 257
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 257
Points : 145
Points : 145
Par défaut Controle format et owa_pattern

Bonjour,

J'essaies d'utiliser le package owa_pattern, mais il y a une chose que je ne pige pas
voici mon bout de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
declare
  pattern varchar2(100) := '^[_a-z0-9-]+$';--+([_a-z0-9-]+)*@[a-z0-9-]+([a-z0-9-]+)+';
  ch1   varchar2(100) := 'àçè';
  ch2   varchar2(100) := 'aze';
  ch3   varchar2(100) := 'azeàçè';
begin
  IF owa_pattern.match(ch1, pattern) then
    dbms_output.put_line('OK');
  else
    dbms_output.put_line('NOK');
  end IF;
IF owa_pattern.match(ch2, pattern) then
    dbms_output.put_line('OK');
  else
    dbms_output.put_line('NOK');
  end IF;
IF owa_pattern.match(ch3, pattern) then
    dbms_output.put_line('OK');
  else
    dbms_output.put_line('NOK');
  end IF;
end;
Pour le ch1 je recois bien NOK là c'est logique,
pour le ch2 je recois OK logique aussi,
par contre pour ch3 je recois OK également, et là je ne comprends pas, il devrait me retourner NOK logiquement.
Il y a un truc que j'ai zappé ?

Merci par avance
Nounoursonne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 12h13   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Le résultat me paraît correct, vous demandez à ce que votre premier caractère (avec l'utilisation du ^) soit inclus dans [a-z0-9].
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 10h32   #3
Membre habitué

 
Avatar de Nounoursonne
 
Inscription : mai 2002
Messages : 257
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 257
Points : 145
Points : 145
ok je comprends.
Mon but est de vérifier que ma chaine a le format d'une adresse mail valide.
J'ai mon expression régulière qui fonctionne bien sous java, par contre sous PL/SQL ile me retourne ok alors que pour moi elle n'est pas valide :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
declare
  pattern varchar2(100) := '^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)+$';--[a-z0-9-]+([a-z0-9-]+)+';
  email   varchar2(100) := 'azeé"';
begin
  IF owa_pattern.match(email, pattern) then
    dbms_output.put_line('OK');
  else
    dbms_output.put_line('NOK');
  end IF;
end;
J'avoue ne pas tout comprendre ...
Sauriez vous m'expliquer ce qui ne va pas ?

Merci par avance
Nounoursonne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web