Oracle sql仅在id存在时更新,否则将返回错误消息



在mongoDB中,我记得有一个findOneAndUpdate查询。我们有没有或者至少可以在oracle-sql中创建一个查询,该查询只在记录存在的情况下更新记录,否则将返回一条未找到数据的消息?我在下面尝试了这个查询,但当找到结果时,它会更新所有记录:

UPDATE 
user
SET 
fname=:lname,
lname=:fname
WHERE
EXISTS (
SELECT * FROM user WHERE id=:id
)

这难道不是吗

update t_user set
fname = :lname,
lname = :fname
where id = :id;

但是,如果没有更新任何内容,它不会返回错误,因此,如果它实际上是一个PL/SQL过程,您必须自己检查它,例如(就在上面的UPDATE语句后面(:

if sql%rowcount = 0 then
dbms_output.put_line('No rows have been updated');
end if;

最新更新