rownum
を使用する場合 およびorder by
あなたは持っている サブクエリで順序を設定します。正しい値を確実に取得する方法は他にありません。
id
がない可能性に対処することもお勧めします クエリに一致します。追加のbegin... end;
を追加しました これに対処するためにブロックします。
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;
/
@raukhが指摘したように(私がこれを書いている間!)、問題はprint
です 、dbms_output.put_line()
である必要があります