Stored procedures DB2 DELETE查询返回计数

Stored procedures DB2 DELETE查询返回计数,stored-procedures,db2,Stored Procedures,Db2,我在编写动态查询方面的知识非常少。作为实现的一部分,我需要编写一个DB2 DELETE查询,该查询应该能够删除行,并且应该返回受影响的行数。 因此,这个查询将被放入一个DB2存储过程中,我将这个计数作为一个OUT参数 我尝试如下,返回计数,但不删除行 SELECT COUNT(STUDENT_ID) AS DELETE FROM STUDENT WHERE STUDENT_LOCATION = 'TNAGAR' AND DATE(JOINING_DATE) < CURRE

我在编写动态查询方面的知识非常少。作为实现的一部分,我需要编写一个DB2 DELETE查询,该查询应该能够删除行,并且应该返回受影响的行数。 因此,这个查询将被放入一个DB2存储过程中,我将这个计数作为一个OUT参数

我尝试如下,返回计数,但不删除行

SELECT COUNT(STUDENT_ID) AS DELETE
  FROM STUDENT
  WHERE STUDENT_LOCATION = 'TNAGAR' 
    AND DATE(JOINING_DATE) < CURRENT DATE - 120 MONTHS;

但是,这可以通过两个单独的查询来实现,即一个用于选择,另一个用于删除,但是我正在寻找一个查询来实现这一点。

如果您在Db2中使用SQL PL过程,则可以使用GET DIAGNOSTICS语句返回受上一次insert/update/delete影响的行数。请参阅此处的文档

例如:

declare v_rows_affected integer default 0;
...
DELETE FROM ...
get diagnostics v_rows_affected = row_count ;

如果您使用的是SQL PL以外的编程语言,并且可以访问SQLCA,那么这个信息也会出现在SQLERRD3的一部分中。

什么Db2版本和平台?