快捷搜索: 王者荣耀 脱发

GBase8s数据库使用 WHERE CURRENT OF 关键字(ESQL/C, SPL)

WHERE CURRENT OF 子句删除一个游标的活动集合的当前行。当包括这个子句时,DELETE 语

句会在游标的当前位置处除去活动集合的行。在删除之后,没有任何当前的行存在;您无法使用游

标删除或更新行,直到您使用 FETCH 语句(ESQL/C 例程中)或 FOREACH 语句(

SPL 例程

中)重新确定游标的位置。

你可以使用更新游标来访问游标的活动集合的当前行。在可以使用 WHERE CURRENT OF 子句之

前,您必须通过使用 FOREACH 语句(SPL 中)或使用带 FOR UPDATE 子句(

GBase 8s

ESQL/C 中)的 DECLARE 语句。跟在 OF 关键字之后的 cursor_id 不能通过 SPL 例程中的

DECLARE 声明。

除非使用 FOR READ ONLY 关键字声明所有 Select 游标,否则所有 Select 游标在兼容 ANSI 的

数据库中均是潜在的更新游标。您可以将 WHERE CURRENT OF 子句与没有用 FOR READ

ONLY 关键字声明的任何 Select 游标一起使用。

如果您只从表层次结构中的一个表进行选择,则不可以使用 WHERE CURRENT OF 。即这个子句

对 ONLY 关键字无效。

通过删除集合变量控制的集合派生的表的当前行,WHERE CURRENT OF 子句可用于从集合删除

元素。有关更多信息,请参阅集合派生表。

经验分享 程序员 微信小程序 职场和发展