理论教育 Oracle数据库管理与开发:显式游标用法

Oracle数据库管理与开发:显式游标用法

时间:2023-10-30 理论教育 版权反馈
【摘要】:显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开、提取数据和关闭。如果提到的游标无特别说明则通常是指显式游标。声明游标游标的声明在PL/SQL块的声明部分进行,就是定义一个游标名以及一条查询语句,其语法如下。INTO子句中的变量个数、顺序、数据类型必须与游标声明中SELECT语句查询列表内字段的数量、顺序和数据类型一致。

Oracle数据库管理与开发:显式游标用法

显式游标处理需要经过4个步骤:声明、打开、提取和关闭。显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开、提取数据和关闭。如果提到的游标无特别说明则通常是指显式游标。

(1)声明游标

标的声明在PL/SQL块的声明部分进行,就是定义一个游标名以及一条查询语句,其语法如下。

参数说明:

①cursor_name:声明的游标名。

②parameter_name[IN]:游标输入参数,IN说明参数的模式,可以省略。

③data_type:输入参数的类型,只需指定类型,不能指定精度或长度

④value:为游标参数提供默认值。

⑤select_statement:为游标提供数据的查询语句。

⑥FOR UPDATE:用于使用游标中的数据时,锁定游标结果集与表中对应数据行的所有或部分列,当利用游标更新或删除表中数据时,必须使用该子句;OF表示只锁定指定的列,如果不使用OF,则表示锁定游标结果集与表中对应数据行的所有列。

⑦NOWAIT:默认情况下,如果数据对象已被某个用户锁定了,那么其他用户的FOR UPDATE操作就要等待,直到该用户释放这些数据行的锁定为止;如果使用了NOWAIT子句,则不等待,此时其他用户打开游标时会立即返回Oracle错误。

(2)打开游标

声明游标后,要通过游标检索数据库中的数据,还必须在PL/SQL块的执行部分打开游标,填充游标的结果集合。

用OPEN语句打开游标,其语法格式如下。(www.daowen.com)

参数说明:

①cursor_name:需要打开的游标名。

②value:为输入参数提供的值列表,这一列表中值的数量、数据类型和顺序必须与游标声明时指定的参数列表中参数的数量、类型和顺序一致。

(3)提取数据

打开游标后,可以通过提取数据来获取查询结果集中的单行记录,以便在PL/SQL程序块中进行处理。

使用FETCH…INTO语句实现,其语法格式如下。

其中,variable是用于存储结果集中单行记录数据的变量。INTO子句中的变量个数、顺序、数据类型必须与游标声明中SELECT语句查询列表内字段的数量、顺序和数据类型一致。

(4)关闭游标

在处理完游标结果集合中的数据后,要及时关闭游标,以便释放其所占用的系统资源。CLOSE语句关闭游标,其语法格式如下。

下面的代码演示了一个不带参数的游标的完整操作步骤。

需要注意的是,游标一旦打开,就不能再次打开,除非先关闭后再打开;只有在打开游标时,声明游标中的SELECT语句才会被执行;第一次使用FETCH语句时,游标指针指向第一条记录,操作完后,游标指针自动指向下一条记录;游标指针只能向前移动,不能回退。

下面的代码演示了一个带参数的游标的完整操作步骤。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈