ciao a tutti, sto creando la seguente funzione in pl/sql:
(non fate caso alla stringa che dovrebbe essere stampata a video). quando compilo la funzione mi dà i seguenti errori: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;
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???

Rispondi quotando