重新打开 Select 或 Function 游标

仅当数据库服务器打开 Select 游标或 Function 游标时,它才计算在 OPEN 语句的 USING 子句中指定的值。在打开游标时,在 USING 子句中对程序变量的后续更改不更改游标的活动集合。

在符合 ANSI 的数据库中,如果您试图打开一已打开的游标,则会收到错误代码。

在不符合 ANSI 的数据库中,后续的 OPEN 语句关闭该游标,然后重新打开它。当数据库服务器重新打开游标时,它基于 USING 子句中变量的当前值创建新的活动集合。如果自从先前的 OPEN 语句以来这些变量已经更改,则重新打开该游标可生成一完全不同的活动集合。

即使这些变量的值未改变,在下列情况下,该活动集合中的值也可不同:

当数据库服务器打开 Select 或 Function 游标时,它可动态地处理大多数查询,无需预先取回所有行。因此,如果其他用户在同一时间正在修改该用表正在处理的表,则活动集合可能反映这些活动的结果。

对于一些查询,当数据库服务器打开该游标时,它计算整个活动集合。这些查询包括具有下列特性的那些:

对于这些查询,在游标正在处理时其他用户对该表的任何更改都不反映在活动集合中。