declare
v_rec record;
begin
-- now update the rel_segments that depend on this segment
for v_rec in select rel_segment
from rc_segment_required_seg_map
where required_rel_segment = old.rel_segment
and rel_side = old.rel_side
LOOP
delete from rc_segment_required_seg_map
where rel_segment = v_rec.rel_segment
and rel_side = old.rel_side
and required_rel_segment
in (select required_rel_segment
from rc_segment_required_seg_map
where rel_segment = old.rel_segment
and rel_side = old.rel_side);
end LOOP;
-- delete dependencies
delete from rc_segment_required_seg_map
where rel_segment = old.rel_segment
and rel_side = old.rel_side
and required_rel_segment
in (select required_rel_segment
from rc_segment_required_seg_map
where rel_segment = old.required_rel_segment
and rel_side = old.rel_side);
-- delete the constraint
delete from rc_segment_required_seg_map
where rel_segment = old.rel_segment
and rel_side = old.rel_side
and required_rel_segment = old.required_rel_segment;
return old;
end;