Bonjour,
Je suis nouveau dans l'utilisation de PgAdmin 3 et je cherche un tutoriel sur la création de fonctions et de déclencheurs dans PgAdmin 3.
Un grand merci
Bonjour,
Je suis nouveau dans l'utilisation de PgAdmin 3 et je cherche un tutoriel sur la création de fonctions et de déclencheurs dans PgAdmin 3.
Un grand merci
Salut,
Pour créer une fonction avec pgadmin :
tu cliques avec le bouton droit sur "Fonctions"/"Ajouter une fonction".
- Définie un nom pour ta fonction, (on va faire ça avec un exemple !!) par exemple "helloworld".
- Dans type renvoyé choisi un type () dans notre exemple "text".
- Dans langage choisi plpgsql
- Dernière étape, dans la partie "Définition". Tu entres le nom et le type de la variable que tu veux en entré. Dans notre exemple tu écris dans la zone à côté du bouton "supprimer" le mot "monnom" et juste au dessus "text". Enfin, tu entres le script que tu veux exécuter. Dans notre exemple :
Tu cliques sur OK et c'est bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 declare resultat text; begin resultat := 'bonjour ' || monnom; return resultat; end;
Dans ta barre d'outils, tu as un bouton avec le mot "SQL". tu cliques dessus et tu écris
Si tu n'utilises pas de schéma, retire ce qui est entre parenthèses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select "monschema".helloworld('bartounet');
Si tu exécutes ce scripts, pg te renvoie "bonjour bartounet".
J'espère que j'ai rien oublié !!!
A+
Salut !
J'ai créé la fonction comme tu l'as expliqué dans le schema public, ce qui me donne ceci :
Mais lorsque j'execute le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -- Function: "TestFunc"(nom text) -- DROP FUNCTION "TestFunc"(nom text); CREATE OR REPLACE FUNCTION "TestFunc"(nom text) RETURNS text AS $BODY$declare resultat text; begin resultat := 'bonjour ' || nom; RETURN resultat; end;$BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION "TestFunc"(nom text) OWNER TO postgres;
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT TestFunc('Davboc');
J'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT public.TestFunc('Davboc');Savez-vous pourquoi ? J'ai refait la fonction plusieurs fois sans succèsAstuce : No function matches the given name and argument types. You may need to add explicit type casts.
Caractère : 8
Essaie avec
En fait, lorsque tu mets des majuscules à un nom de table ou de fonction, celle ci sera appelée en mettant des guillemets. Je te conseille de modifier ta fonction par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT "TestFunc"('Davboc'); -- TestFunc est entre guillemets
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -- Function: "TestFunc"(nom text) -- DROP FUNCTION "TestFunc"(nom text); CREATE OR REPLACE FUNCTION testfunc(nom text) RETURNS text AS $BODY$declare resultat text; begin resultat := 'bonjour ' || nom; RETURN resultat; end;$BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION testfunc(nom text) OWNER TO postgres;
Exact ! Ca marche si je met les guillemets ou sans si je met le nom en minuscule
Merci !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager