la validation de l'e-mail / code postal champs sql/oracle
Serait reconnaissante pour quelques conseils sur les points suivants: Est - il possible de valider l'e-mail et code postal de champs à travers une sorte de vérification de la contrainte dans le sql dans oracle ? ou ce genre de chose que je soupçonne pl/sql avec des expressions régulières ?
Grâce
OriginalL'auteur | 2009-04-24
Vous devez vous connecter pour publier un commentaire.
Si vous n'êtes intéressé que les etats-unis, il existe plusieurs sources de codes postaux que vous pouvez obtenir à plat format de fichier et les importer dans une table, puis appliquer une contrainte de clé étrangère dans une de vos adresses à la table.
Adresses e-mail peuvent être comparées d'une expression régulière (besoins de 10g ou plus) pour valider le format, mais de vérifier pour voir si elles sont réelles adresses est une tâche beaucoup plus difficile.
le lien ci-dessus a été supprimé
OriginalL'auteur dpbradley
Voici la syntaxe regexp pour une adresse de courriel, y compris des citations
De sorte que vous pouvez utiliser regexp_like() dans une clause where ou regexp_substr() pour vérifier si votre champ contient une adresse de courriel valide. Voici un exemple -, vous verrez que le regexp_substr() renvoie la valeur NULL sur l'adresse manquante .domaine, qui échoue à la sous-chaîne de validation. À partir de là, vous pouvez créer une contrainte check autour d'elle, ou de l'appliquer à l'aide d'un trigger(beurk), etc.
En utilisant les mêmes données, voici une requête qui limite la seule adresse de courrier électronique valide, à l'aide de REGEXP_LIKE
De recherche de la page de sommaire de la Référence SQL pour les regexp pour voir le support des expressions régulières.
counsel@[email protected] passe cette expression régulière, et ne doit pas
OriginalL'auteur Neil Kodner
une meilleure expression régulière est:
(même expression mais ancré à démarrer (
^
) et la fin ($
) de la ligne)sans les ancres, les expressions comme '[email protected] un autre texte'
serait validée et, si vous essayez de valider un e-mail,
au-dessus de la chaîne ne doit pas valider
Remarque: l'e-mail doit être préalablement garnis de sorte que chef de file ou les espaces de fin de
ne pas visser de validation.
Espérons que cela aide,
OriginalL'auteur Helder Gramacho
Faire attention à la
'.'
caractère: c'est un joker (comme*
ou%
dans la syntaxe SQL).Vous devez vous échapper avec
'\'
.Ici est l'expression que j'utilise pour correspondre à RFC2822 (peut-être pas tous les cas :)):
OriginalL'auteur Wilfried Loche
OriginalL'auteur Jahanzeb Saqib