Oracle Cursor

2024 年 8 月 29 日 | 阅读 3 分钟

游标是指向私有 SQL 区域的指针,该区域存储有关处理 SELECT 或 DML 语句(如 INSERT、UPDATE、DELETE 或 MERGE)的信息。

游标是一种机制,它使您能够为 SELECT 语句分配一个名称,并操作该 SQL 语句中的信息。

如何声明游标

语法

让我们看看如何定义一个名为 c1 的游标。我们使用一个名为“course”的表,该表具有“course_id”和“course_name”列。

示例

在上面的示例中,此游标的结果集是所有 course_id,其 course_name 与名为 name_in 的变量匹配。

如何在函数中使用游标

示例

输出

Function created.
0.09 seconds

如何打开游标

声明游标之后,您必须使用 open 语句打开游标。

语法

示例

如何在函数中使用 open 游标

此函数指定如何使用 open 语句。

示例

输出

Function created.
0.09 seconds

如何从游标中获取行

此语句在声明并打开游标之后使用。它用于从游标中获取行。

语法

参数

1) cursor_name:它指定您希望获取行的游标的名称。

2) variable_list: 它指定您希望存储游标结果集中的变量列表。

示例

考虑一个定义为

用于获取数据的语句

让我们举一个例子,将 course_id 获取到名为 cnumber 的变量中。

如何关闭游标

CLOSE 语句是最后一步,用于在您使用完游标后将其关闭。

语法

用于关闭游标的语句

示例

以下示例指定如何关闭游标。

游标中的游标

也可以在游标中声明游标。以下示例指定如何在游标中声明游标。

在此示例中,有一个名为 get_tables 的游标,它检索 owner 和 table_name 的值。然后,这些值用于第二个名为 get_columns 的游标中。

示例

输出

Procedure created.
0.16 seconds

注意:每次从第一个游标检索到新记录时,您都必须连续打开和关闭第二个游标。这样,第二个游标将使用来自第一个游标的新变量值。

下一主题Oracle 触发器