Bonjour,
J'ai créé une procédure afin de lister chaque jour, les saisies d'activités qui n'ont pas été effectué pour la date du jour.
Quand j'exécute ma fonction, je n'ai pas de message d'erreur mais il ne me retourne aucun enregistrement : "La requête a été exécutée avec succès en 15 ms, mais ne renvoie aucun résultat."
Quand j'exécute ma requête à part, je récupère bien des enregistrements :
Je pense que je n'utilise pas correctement FETCH.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 id integer _________ 2 3 4 6 12 14
Merci d'avance pour votre aide.
Voici le code de ma fonction :
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 CREATE OR REPLACE FUNCTION fonction_nonsaisie() RETURNS INTEGER AS ' DECLARE ref CURSOR for select personnes.id from personnes where (datedeb<=CURRENT_DATE and datefin>=CURRENT_DATE and actif=true) or (datedeb is null and datefin is null and actif=true) EXCEPT select saisies.personne_id from saisies where date_saisie=CURRENT_DATE group by saisies.personne_id having count(saisies.personne_id)=2; pers_id int; BEGIN OPEN ref; FETCH ref INTO pers_id; LOOP insert into nonsaisies (personne_id, date_nonsaisie) values (pers_id,CURRENT_DATE); end loop; close ref; RETURN 1; END; ' LANGUAGE 'plpgsql';
Partager