Ho creato un'eccezione che, se la seguente SELECT ritorna null esce dal ciclo altrimenti prosegue.

Però non riesco a capire perchè anche se la select non ritorna null lui esce lo stesso come se la select tornasse 'NO_DATA_FOUND'

Perchè?? E' sbagliata la sintassi??
Forse ho sbagliato a posizionare l'END dell' EXCEPTION :master:



for rc in c3 LOOP

BEGIN

SELECT MAX(ID_STORICO) as Max into num from Recall45_debug_storico where colonna5= rc.colonna5;

EXCEPTION WHEN NO_DATA_FOUND THEN
EXIT;

SELECT record_type_new, record_status_new, call_result_new,col_esito_new INTO rc_type_storico,rc_status_storico,c_result_storico , es_storico FROM Recall45_debug_storico WHERE colonna5= rc.colonna5 and id_storico=num;


IF rc.COL_ESITO = es_storico then /* verifica l esito applicativo, se congruente */
IF rc.record_type = rc_type_storico and rc.record_status= rc_status_storico and rc.call_result= c_result_storico then
EXIT;
END IF;

ELSE
DBMS_OUTPUT.PUT_LINE(err ||' ' || rc.COLONNA5 || ' L esito telefonico/applicativo della tabella RECALL_STORICO non coincide con l esito della scheda ON LINE (scheda non in Stale)');
END IF;
END IF;
END;
END LOOP;