Als u rownum
. wilt gebruiken en order by
jij hebt om de bestelling in een subquery te plaatsen. Er is geen andere manier om te garanderen dat u de juiste waarde krijgt.
Het is ook een goede gewoonte om om te gaan met de mogelijkheid dat er geen id
. is die overeenkomt met uw vraag. Ik heb een extra begin... end;
. toegevoegd blok om hiermee om te gaan.
declare
v_id a.id%type;
begin
begin
select id into v_id
from ( select id
from a
where name = 'test'
order by id desc )
where rownum < 2
;
exception when no_data_found then
v_id := null;
end;
dbms_output.put_line(v_id);
doSomething(v_id);
end;
/
Zoals @raukh opmerkte (terwijl ik dit aan het schrijven was!) is het probleem print
, wat dbms_output.put_line()
. zou moeten zijn