Salut,

voici une table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CREATE TABLE T_DAT 
(ID   INT  NOT NULL PRIMARY KEY, 
 DAT  DATE NOT NULL);
et une fonction PG/PL SQL censée remplir la table :
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
CREATE FUNCTION SET_DATES (IN dd DATE, IN df DATE) RETURNS INTEGER
AS '
DECLARE d DATE;
        result  INT := 1;
BEGIN
 d := dd;           
WHILE d < df 
LOOP
   INSERT INTO T_DAT (ID, DAT) VALUES (result, d);
   d := d + INTERVAL ''1 DAY'';
   result := result + 1;
END LOOP;
RETURN (result);
END;'
LANGUAGE 'plpgsql';
Voila l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT F_SET_DATES ('20010101', '20101231')
et le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
ERREUR:  control reached end of function without RETURN
CONTEXTE : PL/pgSQL function "f_set_dates"
 
********** Erreur **********
 
ERREUR: control reached end of function without RETURN
État SQL :2F005
Contexte : PL/pgSQL function "f_set_dates"
Je n'arrive pas à trouver :
  • soit la façon de corriger le code pour que la requête finale marche,
  • soit la façon d'exécuter la fonction (EXECUTE ? , PERFORMN ??, CALL ???)


merci aux bonnes âmes de me tirer de ce mauvais pas !

A +