Procédure appelée dans une procédure : ERROR: query has no destination for result data
Bonjour,
Soit une procédure qui ne retourne rien, ne faisant que des insertions dans des tables :
Code:
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 teste cette procédure toute seule, ça fonctionne ainsi :
Code:
1 2 3
| -- Cas normal : Données complètes et correctes
SELECT lec.pi_ajout_utilisateur(73, 'logintest', '12345678', 3);
-- > OK |
Lorsque je veux faire la même chose dans une autre procédure, j'ai une erreur :
Code:
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); |
=>
Citation:
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
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 ?