db2可以在同一存储过程中更改游标结果集吗?

时间:2014-01-30 15:04:36

标签: stored-procedures cursor db2 resultset

我有一个存储过程,它使用

从数据库中选择数据
DECLARE cursor1 CURSOR WITH RETURN for SELECT...

OPEN cursor1

此时我想删除并更改同一存储过程中结果集中的记录。我无法在选择中进行这些更改。

可以这样做吗?

我见过

DELETE WHERE CURRENT OF cursor1

但Data Studio不喜欢语法,并将'OF'作为错误。我相信Data Studio的版本只有几个月的历史。

感谢您提供任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

如果不修改表格本身,则无法更改结果集。发布DELETEUPDATE WHERE CURRENT OF时,您实际上正在删除或更新基础表中的行。

使用WHERE CURRENT OF意味着循环结果集中的行。请注意,一旦更改了光标位置,新位置将返回给调用者。换句话说,在过程本身中使用结果集之后,需要再次打开游标,以便将结果集返回给调用者。