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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 27
    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 émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    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.

    ++

  3. #3
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    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

+ 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