IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

fonction en PL/pgsql


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    Points : 29
    Points
    29
    Par défaut fonction en PL/pgsql
    Bonjour à tous,

    Jai une fonction qui valide les adresses electroniques et se presente ainsi:

    CREATE OR REPLACE FUNCTION email_adress_check(character varying)
    RETURNS boolean AS
    $BODY$
    DECLARE

    BEGIN
    IF($1 !~ '(^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$)')
    THEN
    Raise Exception 'Test|numb|email_adress|WRONG_EMAIL_ADRESS|% is a wrong email adress ',$1;
    END IF;
    RETURN $1;
    END;
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE;
    ALTER FUNCTION email_adress_check(character varying) OWNER TO postgres;

    --Test est ma base de données
    --numb est la table dans laquelle j´essaye d´inserer des valeurs
    --email_adress la colone

    y a-t-il une possibilité pour pouvoir afficher automatiquement dans le message d´erreur, la base de donnée, la table et la colone?

    Le soucci est le suivant je voudrais que l´utilisateur dans le message d´erreur, sache dans quelle base de donnée il se trouve et qu´il voie sur quelle table et quelle colone il insere des valeurs!

    Merci pour vos idées et bonne semaine.

    YP

  2. #2
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    Hello,

    Oui, c'est possible.
    Tu peux rajouter un contrainte par exemple.

    Quand tu parles de "tableaux", je suppose que c'est de tables dont il est question ?

    Peux tu préciser quelle version de pg tu utilises?

    Par exemple : ta fonction de vérification de mail qui renvoie un booléen (vrai = bon, faux = pas bon).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE OR REPLACE FUNCTION  valid_mail(VARCHAR) RETURNS boolean
    Et tu ajoute les contraintes à tes colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE  produits
     (
         pkey SERIAL PRIMARY KEY ,
         mail_pro VARCHAR CONSTRAINT  mail_pro_valid CHECK  (valid_mail(mail_pro) ) NOT NULL ,
         mail_perso VARCHAR  mail_perso_valid CHECK  (valid_mail(mail_perso) ) NOT NULL 
     );
    tu peux utiliser un principe similaire avec des triggers si tu veux.

    ++
    Two beer or not two beer. (Shakesbeer)
    Question technique par MP => poubelle!

  3. #3
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    voici une fonction qui teste la validité d'un email, meme si tu en as deja une, ce sera pour les lecteurs

    http://postgresql.developpez.com/sou...res#verifemail
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Pl/PgSql avec paramètres optionnels ?
    Par pierredesproges dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 22/04/2008, 20h37
  2. retourner un count() par une fonction PL/pgSQL ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 22/05/2007, 14h12
  3. [PL/PGSQL] colonne en parametre d'une fonction
    Par xavier-Pierre dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/07/2006, 18h46
  4. appel de fonction pl/pgsql
    Par gballou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/11/2005, 12h53
  5. [Pl/pgSQL] Erreur sur l'execution d'une fonction.
    Par Floréal dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/09/2005, 00h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo