Bonjour,
Soit une procédure qui ne retourne rien, ne faisant que des insertions dans des tables :
Lorsque je teste cette procédure toute seule, ça fonctionne ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE OR REPLACE FUNCTION lec.pi_ajout_utilisateur ( IN id_personne_physique INTEGER, IN login CHARACTER VARYING(24), IN mot_passe CHARACTER VARYING(128), IN id_type_utilisateur INTEGER ) RETURNS VOID AS ...
Lorsque je veux faire la même chose dans une autre procédure, j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 -- Cas normal : Données complètes et correctes SELECT lec.pi_ajout_utilisateur(73, 'logintest', '12345678', 3); -- > OK
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 BEGIN IF id_eleve IS NULL THEN -- Si id_eleve n'est pas fourni, on crée la personne physique SELECT id_eleve FROM lec.pi_ajout_personne_physique(NULL, nom_usuel, prenom_usuel, id_civilite); END IF; -- Création de l'utilisateur SELECT lec.pi_ajout_utilisateur(id_eleve, login, mot_passe, 3);Vu l'heure tardive et mon gros rhume, mes neurones ont sans doute besoin de sommeil et je ne sais pas résoudre ça. Quelqu'un a une explication à me donner ?ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function pi_ajout_eleve(integer,integer,character varying,character varying,character varying,character varying,date,character varying,integer) line 11 at SQL statement
Partager