可以先执行update语句(update的条件是存在的判断条件),然后调用get diagnostics获得上一个SQL语句执行所影响的行数,如果影响行数为0,则说明不存在,那么再执行insert语句。
结构类似:
declare
v_cnt integer;
begin
update .... -- 执行更新语句
where ...; -- 这里的条件是存在的判断条件
get diagnostics v_cnt = row_count; -- 将影响行数的值赋给v_cnt
if v_cnt = 0 then
insert into ...; -- 执行插入语句
end if;
end;