ORA-01403
(Inga data hittades) händer när din fråga inte returnerar något och du försöker skicka den till variabel via INTO
.
ORA-01422
(För många rader) händer när din fråga returnerar mer än 1 rad som du försöker få plats på INTO
.
Du hanterar no_data_found
från den första SELECT
fråga men du hanterar inte too_many_rows
från den första frågan. Om din första SELECT
fråga kastar en no_data_found
undantag, kommer det att hanteras från EXCEPTION
, annars om den kastar en too_many_rows
undantag än det kommer att misslyckas som din andra bild.
Så var är no_data_found
händer undantag? Förmodligen från din andra SELECT
fråga.
Du bör loopa den första SELECT
fråga för att undvika en no_data_found
eller en too_many_rows
och se till att din andra SELECT
fråga returnerar alltid 1 rad.