Fonction pluviométrie PL/SQL
Bonjour,
J'ai testé avec SQL Command de APEX 3.1 ces commandes, qui me permettent d'obtenir pour la date de la veille la pluviométrie en interrogeant une table adéquate.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| WITH RAINFALL AS
(
SELECT DATE1 RAINFALLDATE,
VALEUR VALUE
FROM EVV_STPL
WHERE CLEF_VAR = 4723
AND TO_DATE(DATE1, 'DD/MM/YYYY') = TO_DATE(sysdate-1, 'DD/MM/YYYY')
)
SELECT SUM (TOTO) CUMUL
FROM (
SELECT TRUNC (RAINFALLDATE) AS datte,
VALUE,
LEAD (VALUE) OVER ( PARTITION BY TRUNC (RAINFALLDATE)
ORDER BY RAINFALLDATE
) - VALUE AS TOTO
FROM RAINFALL
)
WHERE TOTO >= 0
GROUP BY datte |
J'obtiens bien ce que je veux, mais maintenant je veux transformer cela en fonction.
Donc j'ai créé cette fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| create or replace function "CALC_PLUVIO" (clef_var in NUMBER)
return number
is
stmt number;
BEGIN
SELECT SUM (TOTO) INTO CUMUL
FROM (
SELECT TRUNC (RAINFALLDATE) AS datte,
VALUE,
LEAD (VALUE) OVER ( PARTITION BY TRUNC (RAINFALLDATE)
ORDER BY RAINFALLDATE
) - VALUE AS TOTO
FROM RAINFALL
)
WHERE TOTO >= 0
GROUP BY datte
WITH RAINFALL AS
(
SELECT DATE1 RAINFALLDATE,
VALEUR VALUE
FROM EVV_STPL
WHERE CLEF_VAR = clef_var
AND TO_DATE(DATE1) = TO_DATE(sysdate-1)
);
RETURN CUMUL;
END; |
et là ça ne fonctionne plus, :
Citation:
Compilation failed,line 18 (10:55:34)
PL/SQL: ORA-00933: la commande SQL ne se termine pas correctementCompilation failed,line 7 (10:55:34)
PL/SQL: SQL Statement ignored
Je ne dois pas être très loin de la solution, que je ne vois pas.