вот юскейс:
нужно получить строку из таблицы по значению первичного ключа.
если такой строки нет, то нужно ее добавить (со определенными значениями остальных колонок).
код примерно такой:
<<xxx>>
begin
select ...
into ...
from t
where id = :id;
exception
when no_data_found then
begin
insert into t (id, ...)
values (:id, ...);
exception
when dup_val_on_index then
goto xxx;
end;
end;
но этот код всеравно недостаточно хорош.
подскажите хороший способ?