视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle游标介绍
2020-11-09 14:26:35 责编:小采
文档


Oracle中的PL/SQL的游标是指把数据库中查询出来的数据以临时表的形式存放在内存中,游标可以对存储在内存中的数据进行操作,返回

Oracle的游标介绍

Oracle中的PL/SQL的游标是指把数据库中查询出来的数据以临时表的形式存放在内存中,游标可以对存储在内存中的数据进行操作,返回一条或者一组数据,或者一条数据也不返回。PL/SQL中的记录和表类型虽然也能用来存储数据,但对一组存储在内存中的数据进行操作,还是不太方便,游标恰好是这方面的工具。

PL/SQL包含隐含游标和显示游标,其中隐含游标用于处理SELECT INTO和DML语句,而显示游标则专门用于处理SELECT语句返回的多行数据,游标的基本操作有:

- 声明游标
- 打开游标
- 提取游标
- 关闭游标

声明游标

定义一个游标名称来对应一条查询语句,语法如下:

CURSOR cursor_name [{parameter_name [IN] data_type [{:=|DEFAULT} value][...]}] IS select_statement [FOR UPDATE [OF column [...]][NOWAIT]]说明:

1. data_type 为输入参数指定数据类型,但不能指定精度或长度

2. FOR UPDATE 用于在使用游标的数据时,锁定游标结果集与表中对应的数据的所有行或部分列

3. OF 如果不使用OF子句,则表示锁定游标结果集与表中对应数据行的所有列,若使用了OF子句,则只锁定指定的列

4. NOWAIT 如果表中的数据行被某用户锁定,那么其他用户的FOR UPDATE操作将会一直等到该用户释放这些数据行的锁定后才会执行,而如果使用了NOWAIT,则其他用户在使用OPEN命令打开游标时会立即返回错误信息。

打开游标

只有打开游标后,Oracle才会执行查询语句,其语法:

OPEN cursor_name [(value,...)];打开游标后,游标对应的SELECT语句也就被执行了,通过检索游标从结果集中获取单行数据并保存到定义的变量中,语法如下:

FETCH cursor_name INTO variable [,...];其中,variable 是用来存储结果集中单行数据的变量,可以选择多个普通类型的变量,一对一地接收行中的列值,也可以使用一个%ROWTYPE类型的变量,或自定义的记录类型变量,,接收行中所有的列值。

关闭游标

关闭游标,释放系统资源,其语法如下:

CLOSE cursor_name;

本文永久更新链接地址:

下载本文
显示全文
专题