ciao a tutti, sto creando la seguente funzione in pl/sql:
codice:
create or replace FUNCTION REPOSITORYADM.NOTE_SPESE_FUNC
(
PARLID IN VARCHAR2
) RETURN REPOSITORYADM.NOTA_SPESA_VARRAY IS
NOTA REPOSITORYADM.NOTA_SPESA_VARRAY;
INDICE NUMBER := 0;
CURSOR C1 IS
SELECT PARL_ID, LEGIS_NUM, SUM(ALLOGGIO), SUM(viaggio), SUM(sanitarie), SUM(sicurezza), SUM(telefono), SUM(altro), SUM(TOT)
FROM REPOSITORYADM.NOTE_SPESE
WHERE PARL_ID = PARLID
GROUP BY LEGIS_NUM;
RIGA C1%ROWTYPE;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO RIGA;
EXIT WHEN C1%NOTFOUND;
NOTA(INDICE).LEGISLATURA := RIGA.LEGIS_NUM;
NOTA(INDICE).ALLOGGIO := RIGA.ALLOGGIO;
NOTA(INDICE).VIAGGIO := RIGA.VIAGGIO;
NOTA(INDICE).SANITARIE := RIGA.SANITARIE;
NOTA(INDICE).SICUREZZA := RIGA.SICUREZZA;
NOTA(INDICE).TELEFONO := RIGA.TELEFONO;
NOTA(INDICE).ALTRO := RIGA.ALTRO;
NOTA(INDICE).TOT := RIGA.TOT;
INDICE := INDICE + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('IJUNWEICUENI');
RETURN NOTA;
END NOTE_SPESE_FUNC;
(non fate caso alla stringa che dovrebbe essere stampata a video). quando compilo la funzione mi dà i seguenti errori:
Errore(23,5): PL/SQL: Statement ignored
Errore(23,35): PLS-00302: il componente 'ALLOGGIO' deve essere dichiarato
Errore(24,5): PL/SQL: Statement ignored
Errore(24,34): PLS-00302: il componente 'VIAGGIO' deve essere dichiarato
Errore(25,5): PL/SQL: Statement ignored
Errore(25,36): PLS-00302: il componente 'SANITARIE' deve essere dichiarato
Errore(26,5): PL/SQL: Statement ignored
Errore(26,36): PLS-00302: il componente 'SICUREZZA' deve essere dichiarato
Errore(27,5): PL/SQL: Statement ignored
Errore(27,35): PLS-00302: il componente 'TELEFONO' deve essere dichiarato
Errore(28,5): PL/SQL: Statement ignored
Errore(28,32): PLS-00302: il componente 'ALTRO' deve essere dichiarato
Errore(29,5): PL/SQL: Statement ignored
Errore(29,30): PLS-00302: il componente 'TOT' deve essere dichiarato
perchè succede questo?? e, soprattutto, perchè solo con le variabili number mentre la legislatura non lo vode come un errore???