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???