Один из вариантов - создать функцию (которая возвращает логическое значение - TRUE
, если ID
существует в TABLE_2
; FALSE
в противном случае).
Я предполагаю, что TABLE_1_ID
уникально вTABLE_2
.Если это не так, есть вероятность, что он вернет ошибку TOO_MANY_ROWS
, поэтому я обработал ее.
create or replace function f_id_exists (par_table_1_id in table_1.id%type)
return boolean
is
l_table_1_id table_1.id%type;
begin
select t.table_1_id
into l_table_1_id
from table_2 t
where t.table_1_id = par_table_1_id;
return true;
exception
when no_data_found then
return false;
when too_many_rows then
return true;
end;