隐式游标
2016-07-17 00:23
148 查看
显式游标主要是用于对查询语句的处理,尤其是在查询结果为多条记录的情况下;
对于非查询语句,如修改、删除操作,则由ORACLE系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为SQL,这是由ORACLE系统定义的。
对于隐式游标的操作,如定义、打开、取值及关闭操作,都由ORACLE 系统自动地完成,无需用户进行处理。
用户只能通过隐式游标的相关属性,来完成相应的操作。
在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显示游标无关。
隐式游标格式调用为:SQL%
注:INSERT, UPDATE, DELETE, SELECT 语句中不必明确定义游标。
隐式游标属性
例子:
create or replace procedure p_test_cusor_hide is
v_rows number;
begin
DELETE FROM emp t WHERE t.deptno = '100';
--删除没有员工的部门
IF SQL%NOTFOUND THEN
DELETE FROM dept t WHERE t.deptno = '100';
END IF;
--更新数据
UPDATE emp t
SET t.sal = 30000
WHERE t.deptno = 90
AND t.job = 'AD_VP';
--获取默认游标的属性值
v_rows := SQL%ROWCOUNT;
DBMS_OUTPUT.PUT_LINE('更新了' || v_rows || '个雇员的工资');
--回退更新,以便使数据库的数据保持原样
ROLLBACK;
end p_test_cusor_hide;
对于非查询语句,如修改、删除操作,则由ORACLE系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名字为SQL,这是由ORACLE系统定义的。
对于隐式游标的操作,如定义、打开、取值及关闭操作,都由ORACLE 系统自动地完成,无需用户进行处理。
用户只能通过隐式游标的相关属性,来完成相应的操作。
在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显示游标无关。
隐式游标格式调用为:SQL%
注:INSERT, UPDATE, DELETE, SELECT 语句中不必明确定义游标。
隐式游标属性
属性 | 值 | SELECT | INSERT | UPDATE | DELETE |
SQL%ISOPEN | FALSE | FALSE | FALSE | FALSE | |
SQL%FOUND | TRUE | 有结果 | 成功 | 成功 | |
SQL%FOUND | FALSE | 没结果 | 失败 | 失败 | |
SQL%NOTFUOND | TRUE | 没结果 | 失败 | 失败 | |
SQL%NOTFOUND | FALSE | 有结果 | 成功 | 成功 | |
SQL%ROWCOUNT | 返回行数,只为1 | 插入的行数 | 修改的行数 | 删除的行数 |
例子:
create or replace procedure p_test_cusor_hide is
v_rows number;
begin
DELETE FROM emp t WHERE t.deptno = '100';
--删除没有员工的部门
IF SQL%NOTFOUND THEN
DELETE FROM dept t WHERE t.deptno = '100';
END IF;
--更新数据
UPDATE emp t
SET t.sal = 30000
WHERE t.deptno = 90
AND t.job = 'AD_VP';
--获取默认游标的属性值
v_rows := SQL%ROWCOUNT;
DBMS_OUTPUT.PUT_LINE('更新了' || v_rows || '个雇员的工资');
--回退更新,以便使数据库的数据保持原样
ROLLBACK;
end p_test_cusor_hide;
相关文章推荐
- HTML基础学习之 --元素 定位
- 修改PDF.NET SOD源代码以支持加密的数据库连接字符串
- Sas应用之数据输出excel(二)
- NSDictionary、NSMutableDictionary的基本用法
- Criteria 和 DetachedCriteria 的区别
- lingo运筹学上机实验指导
- lingo运筹学上机实验指导
- c#生成XML文件
- 也谈大端小端
- Criteria 和 DetachedCriteria 的区别
- Codeforces Round #362 (Div. 2) D Puzzles (DP)
- 文件的下载与上传
- ueditor的图片上传(jsp)
- 本地搭建svn服务器
- JAVA中互换两个变量的值的方法?
- VS2010编译后控件变暗淡及listcontrol的LVS_EX_DOUBLEBUFFER无效
- MYSQL神秘的HANDLER命令与实现方法
- HUST 1214 Cubic-free numbers II(区间n=x^3*k的n的个数、枚举x容斥)
- CSS语法结构和选择器
- keil中调试中无法添加变量到watch