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.
J'obtiens bien ce que je veux, mais maintenant je veux transformer cela en 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 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
Donc j'ai créé cette fonction :
et là ça ne fonctionne plus, :
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
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;
Je ne dois pas être très loin de la solution, que je ne vois pas.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
Partager