oracle中的游标
2021/6/3 19:24:02
本文主要是介绍oracle中的游标,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
oracle中的游标分类:
显示游标,隐式游标,游标变量
游标变量又可以分为强游标和弱游标
强类型游标变量
使用强游标变量,您只能关联返回指定类型的查询 -- strong type TYPE empcurtyp IS REF CURSOR RETURN employees%ROWTYPE; -- strong cursor variable cursor1 empcurtyp;弱类型游标变量:使用弱游标变量,可以关联任何查询
-- weak type TYPE
genericcurtyp IS REF CURSOR;
-- weak cursor variable
cursor2 genericcurtyp;
游标变量
TYPE type_name IS REF CURSOR [ RETURN return_type ]
预定义类型的变量:SYS_REFCURSOR
隐式游标
显式游标主要是用于对查询语句的处理,尤其是在查询结果为多条记录的情况下;而对于非查询语句,如修改、删除操作,则由ORACLE 系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为SQL,这是由ORACLE 系统定义的。对于隐式游标的操作,如定义、打开、取值及关闭操作,都由ORACLE 系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是与用户自定义的显示游标无关的、最新处理的一条SQL 语句所包含的数据。
格式调用为: SQL%
SQL%ISOPEN |
|
FALSE |
FALSE |
FALSE |
FALSE |
SQL%FOUND |
TRUE |
有结果 |
|
成功 |
成功 |
SQL%FOUND |
FALSE |
没结果 |
|
失败 |
失败 |
SQL%NOTFUOND |
TRUE |
没结果 |
|
失败 |
失败 |
SQL%NOTFOUND |
FALSE |
有结果 |
|
成功 |
失败 |
DECLARE V_deptno department_id%TYPE :=&p_deptno; BEGIN DELETE FROM employees WHERE department_id=v_deptno; IF SQL%NOTFOUND THEN DELETE FROM departments WHERE department_id=v_deptno; END IF; END;
显示游标
显式游标处理需四个 PL/SQL步骤:
1.定义/声明游标:就是定义一个游标名,以及与其相对应的SELECT 语句
CURSOR cursor_name[(parameter[, parameter]…)] [RETURN datatype] IS select_statement;
2.打开游标:就是执行游标所对应的SELECT 语句,将其查询结果放入工作区,并且指针指向工作区的首部,标识游标结果集合。如果游标查询语句中带有FOR UPDATE选项,OPEN 语句还将锁定数据库表中游标结果集合对应的数据行。 OPEN cursor_name[([parameter =>] value[, [parameter =>] value]…)];
提取游标数据:就是检索结果集合中的数据行,放入指定的输出变量中。
FETCH cursor_name INTO {variable_list | record_variable };
关闭游标 CLOSE cursor_name;
这篇关于oracle中的游标的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解
- 2024-12-20利用Gemini构建处理各种PDF文档的Document AI管道