2010-12-08 56 views
1

Je suis relativement nouveau à Oracle et très nouveau pour APEX. Je suis en train d'ajouter une contrainte sur une table pour valider l'e-mail:Ajout d'une contrainte de vérification de courrier électronique dans APEX

REGEXP_LIKE(CALLER_EMAIL, '[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}') 

Maintenant, si je ne me trompe pas cela fonctionnerait bien dans un CONSTRAINT <name> CHECK(REGEXP_LIKE(...)) mais je reçois ce (confusion) erreur lorsque je tente de le sauver :

ORA-00920: opérateur relationnel invalide

Je pense qu'il est parce que la requête générée contient "CALLER_EMAIL":

alter table "CALL" add constraint 
"CALL_EMAILFORMAT_CHK" check ("CALLER_EMAIL" REGEXP_LIKE(CALLER_EMAIL, '[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}')) 

Des idées?

+0

Vous devez être prudent avec cette approche. Il existe un grand nombre d'adresses électroniques valides qui peuvent être rejetées. –

Répondre

1

Essayez ceci:

alter table "CALL" add constraint 
"CALL_EMAILFORMAT_CHK" check 
    (REGEXP_LIKE(CALLER_EMAIL, '[a-zA-Z0-9._%-][email protected][a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}'));