Se l'istruzione SELECT INTO non restituisce almeno una riga, viene generato ORA-01403.Perché no_data_found ORA-01403 è un'eccezione in Oracle?
Per ogni altro DBMS, so che questo è normale su un SELECT. Solo Oracle considera SELECT INTO in questo modo.
CREATE OR REPLACE PROCEDURE no_data_proc IS
dummy dual.dummy%TYPE;
BEGIN
BEGIN
SELECT dummy
INTO dummy
FROM dual
WHERE dummy = 'Y';
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('Why is this needed?');
END;
END no_data_proc;
Perché?
Secondo me non hai davvero bisogno di questa eccezione. È troppo sovraccarico. A volte è utile ma devi scrivere un intero BEGIN, EXCEPTION, WHEN, END Block.
Ci sono dei motivi essenziali che non vedo?
Non dimenticare di prendere TOO_MANY_ROWS quando la selezione restituisce più di una riga. – Rene