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 :

[NOVICE] Créer des fonctions


Sujet :

PostgreSQL

  1. #1
    Invité2
    Invité(e)
    Par défaut [NOVICE] Créer des fonctions
    Bonjour à toutes et tous,

    J'utilise PostGreSQL 8.3, via PDO, donc en PHP, et j'aimerais créé une fonction avec 5 arguments :

    je fais donc quelques chose comme cecis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE FUNCTION ajouter(rang integer, soeur integer, nom varchar, signature TEXT, photo integer) RETURNS integer AS '
     
    RETUN retour
    ' LANGUAGE SQL;
    Le problème est que, comme tout débutant qui se respect, je ne sais pas comment mettre un structure conditionnelle, j'aimerais teswter l'éxistence de nom sur t1, si il n'y a pas d'entré avec ce nom, j'aimerais éxécuter une série de requêtes, puis, retourné 1, si non retourner 0...

    Comment faire ?

    Par avance merci de votre aide...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut
    C'est un peu vague
    je te donne un exemple de fonction
    avec curseur mais tu peux enlever le curseur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    -- Function: get_journal_next_sequence("varchar")
     
    -- DROP FUNCTION get_journal_next_sequence("int4");
     
    CREATE OR REPLACE FUNCTION verif_ecriture(int4)
      RETURNS integer AS
    $BODY$ 
    -- -------------------------------------------------------------------------------------------
    -- nom              verif_ecriture
    -- type              procedure PLSQL
    -- version          1.0
    -- variables	 argument si journal id est nul alors toules journaux 
    -- exemple
    -- description   Vérification des ecritures 
    -- test select * from verif_ecriture(0);
    --  RAISE NOTICE '*%*',v_var;
    -- -------------------------------------------------------------------------------------------
    DECLARE
     
    v_journal_id ALIAS FOR $1;
    v_sum_verif 	 numeric (10,2);
    v_ecr_code	 varchar;
    cur_journal RECORD; 
    cur_ecr RECORD; 
     
    BEGIN
     
    FOR cur_journal IN SELECT journal_id FROM journal where statut = true LOOP
    	IF (coalesce(v_journal_id, 0) = 0 OR coalesce(v_journal_id, 0) = cur_journal.journal_id ) THEN
     
    		select sum(coalesce(ecr_deb_mnt, 0)) -  sum(coalesce(ecr_cre_mnt, 0)) into v_sum_verif 
    		from ecriture 
    		where journal_id = cur_journal.journal_id
    		and statut = true;
     
    		IF (v_sum_verif != 0 )  THEN
    			return -210; 
    		END IF;
    	END IF;
    END LOOP; 
     
     
    return 10;
     
     
    END;$BODY$
      LANGUAGE 'plpgsql' VOLATILE STRICT;
    ALTER FUNCTION get_sequence("varchar") OWNER TO postgres;

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/01/2009, 21h05
  2. Réponses: 35
    Dernier message: 14/11/2008, 15h30
  3. Créer des fonctions dynamiques
    Par Superne0 dans le forum C
    Réponses: 88
    Dernier message: 24/03/2007, 10h26
  4. Créer des fonctions de conversion d'unités
    Par frenzy dans le forum Langage
    Réponses: 6
    Dernier message: 01/03/2006, 09h52
  5. Créer des fonctions au sein d'un script
    Par mat.M dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/03/2004, 15h25

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