Oracle sql 仅当 id 存在时更新,否则 return 一条错误消息

Oracle sql update only if id exist else return an error message

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

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;

如果没有任何更新,它不会 return 出错,所以 - 如果它实际上是一个 PL/SQL 程序,你必须自己检查,例如(就在上面 UPDATE 语句的后面):

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