如何不收到此警告? DB2 警告 SQLSTATE=02000 未找到可用于 FETCH、UPDATE 或 DELETE 的行;或者查询结果是一个空表

问题描述 投票:0回答:3

我们的错误处理设置方式是,当发生此警告时,将向每个人发送一封电子邮件(我无法更改此警告)。我真的不在乎没有找到适合这项工作的行。

我该怎么办

A) 在删除某行之前检查该行是否存在,或者

B)以某种方式规避/忽略此警告?

删除示例:

 delete from schema.table 
   where key is null;

SQLSTATE=02000 No row
FETCH、UPDATE 或 DELETE 显示错误;或者查询结果是一个空表。

我也无法插入虚拟记录来删除。

sql db2 warnings
3个回答
0
投票

也许这样就可以了

with delete_rows as (
  select * from old table (delete from schema.table where key is null)
)
select count(*) from delete_rows

0
投票

你可以尝试复合SQL(编译)语句“吃掉”这个警告。

BEGIN
  DECLARE CONTINUE HANDLER FOR NOT FOUND
  BEGIN END;
  DELETE ...;
END

0
投票

马克·巴林斯坦的解决方案对我有用。我正在通过 IBM 的 CLI ODBC 驱动程序调用一个使用 MERGE 语句的 DB2 存储过程,并将其添加到开头抑制了我的警告!

© www.soinside.com 2019 - 2024. All rights reserved.