`
jinliyixi
  • 浏览: 18220 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle笔记六(游标)

阅读更多
游标:游标是一个指向上下文的句柄( handle)或指针
1. 显示游标(用于查询语句,尤其是多行的查询语句)
Declare
V_emp emp%rowtype;
Cursor c_cursor is select * from emp;
Begin
Open c_cursor;
Fetch c_cursor into v_emp;
While c_cursor%found loop
dbms_output.put_line(v_record.empno ||','||v_record.ename||','||v_record.sal);
Fetch c_cursor into v_emp;
End loop;
Close c_cursor;
End;

2. 带参游标
Declare
V_emp emp%rowtype;
Cursor c_cursor(p_deptno emp.deptno%type) is select * from emp where deptno=p_deptno;
Begin
Open c_cursor(20);
Fetch c_cursor into v_emp;
While c_cursor%found loop
dbms_output.put_line(v_record.empno ||','||v_record.ename||','||v_record.sal);
Fetch c_cursor into v_emp;
End loop;
Close c_cursor;
End;

4. 游标属性
a).%found
b).%notfound
c).%isopen(隐式游标中永远为false)
d).%rowcount

5. 隐式游标(主要用于DML操作)
declare
   v_deptno emp.DEPTNO%type:=&deptno;
begin
delete from emp where deptno=v_deptno;
if sql%notfound then
delete from dept where deptno=v_deptno;
commit;
else rollback;
end if;
end;

6. 显示游标的FOR循环
Declare
Cursor c_cursor is select * from emp;
Begin
--隐含打开游标
For emp_record in c_cursor loop
--隐含执行一个FETCH语句
If emp_record.sal <1200 then
Update emp set sal=sal+100 where empno=emp_record.empno;
dbms_output.put_line(emp_record.empno ||'sal updated');
end if;
--隐含监测c_cursor%NOTFOUND
end loop;
--隐含关闭游标
End;

7. NO_DATA_FOUND 和 %NOTFOUND的区别
a).SELECT … INTO 语句触发 NO_DATA_FOUND
b).当一个显式游标的WHERE子句未找到时触发%NOTFOUND;
c).当UPDATE或DELETE 语句的WHERE 子句未找到时触发 SQL%NOTFOUND;
d).在提取循环中要用 %NOTFOUND 或%FOUND 来确定循环的退出条件,不要用 NO_DATA_FOUND.

8. 游标修改和删除操作
declare
   cursor c_cursor(p_deptno dept.DEPTNO%type default 10) is
     select * from emp where deptno=p_deptno
  for update nowait;
begin
for c_ces in c_cursor(60) loop
if c_ces.sal<1500 then
update emp set sal=1500 where current of c_cursor;
dbms_output.put_line(c_ces.ename || 'salary is updated');
end if;
end loop;
--dbms_output.put_line(c_cursor%rowcount);
end;
分享到:
评论

相关推荐

    oracle笔记游标的使用

    oracle笔记游标的使用,游标的详细代码案例,游标知识点笔记!

    ORACLE 游标学习笔记

    Oracle 游标是数据库编程中的重要概念,尤其在PL/SQL中,它们允许程序逐行处理查询结果。游标分为隐式游标和显式游标两种类型。 **隐式游标** 隐式游标是Oracle自动管理的一种游标,主要用于DML(数据操纵语言)...

    oracle笔记(存储过程函数触发器游标流程控制等)

    这份"oracle笔记(存储过程函数触发器游标流程控制等)"涵盖了Oracle数据库管理中的关键知识点,包括但不限于以下几个方面: 1. **存储过程与函数**:存储过程是预编译的SQL语句集合,用于执行特定任务。它们可以提高...

    达内,tarena,oracle笔记,oraclePPT课件,达内oracle笔记

    在达内的Oracle笔记中,可能会详细讲解SELECT语句用于数据检索,INSERT、UPDATE、DELETE用于数据增删改,以及CREATE、ALTER、DROP用于数据库对象管理的语法和用法。 3. **数据库设计**:良好的数据库设计是确保系统...

    Oracle笔记(基于尚学堂马士兵)

    【Oracle笔记(基于尚学堂马士兵)】 Oracle是一款全球广泛使用的大型关系型数据库管理系统,由美国Oracle公司开发。本笔记主要基于尚学堂马士兵老师的教学内容,深入浅出地介绍了Oracle的基本概念、安装配置、SQL...

    oracle经典笔记

    《Oracle经典笔记》是一份深度探讨Oracle数据库管理系统的综合学习资料。这份笔记涵盖了从Oracle PL/SQL编程到SQL查询语言的广泛主题,旨在帮助读者深入理解Oracle数据库的运作机制和应用技巧。 首先,我们来看看...

    oracle_sql笔记

    这篇笔记主要涵盖了Oracle SQL的基础知识、高级特性和实际应用技巧。 一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM...

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望对你有帮助:主要文档如下: 01-常用命令.txt 02-表空间建表.txt 03-基本查询语句学习笔记.txt 04-高级查询语句学习笔记.txt 05-锁和表分区学习...

    学习oracle笔记(word版本)

    以下是一些从“学习Oracle笔记”中提取的关键知识点: 1. **DECODE 函数**:DECODE 函数在Oracle SQL中用于替代简单的IF...ELSE逻辑。在示例中,`decode(sex, '男', 1, 0)` 意味着如果性别为'男',则返回1,否则...

    Oracle笔记及操作

    本文将基于"Oracle笔记及操作"的主题,深入探讨Oracle数据库的一些关键知识点,包括视图、游标、事务以及如何查看系统表中的语法。 首先,让我们来了解**视图**。视图是数据库中的虚拟表,它不存储数据,而是基于一...

    李兴华—oracle课堂笔记(全).rar

    笔记会讲述如何编写存储过程、函数、触发器,以及异常处理和游标的应用。 4. **数据库设计**:良好的数据库设计是系统性能的关键。笔记可能会涉及范式理论,如何进行规范化设计,以及反规范化在特定情况下的应用。 ...

    2011版李兴华主讲-ORACLE实战 最强大的数据库课程MLDN出品—oracle课堂笔记(全).rar

    课程的“oracle课堂笔记(全).pdf”文件很可能是详细的课后总结或讲义,包含了上述所有知识点的详细讲解和实例。通过学习这份资料,你可以巩固对Oracle的理解,提升解决实际问题的能力。 总的来说,这个2011年的...

    韩顺平oracle笔记

    韩顺平的Oracle笔记,作为学习资源,将帮助初学者快速上手Oracle数据库,同时为有经验的DBA提供深入理解Oracle的宝贵材料。通过系统地学习这些笔记,可以全面提升对Oracle数据库的理解和操作能力。

    oracle笔记

    Oracle笔记是针对数据库管理系统Oracle的一款详尽学习资料,它涵盖了Oracle的基础知识、核心概念以及实践操作,对于初学者和有经验的DBA来说都是一份宝贵的参考资料。笔记内容可能包括以下几个方面: 一、Oracle...

    oracle笔记proc代码等

    "Oracle笔记proc代码等"这个标题和描述暗示了我们可能涉及到的是关于Oracle数据库的PL/SQL过程(PROC)编程相关的学习资料。PL/SQL是Oracle专有的SQL扩展,它允许开发者编写存储过程、函数、触发器等,以实现更复杂...

    数据库SQL oracle的笔记,比较全面的

    数据库SQL Oracle笔记全面解析 在IT领域,数据库是存储、管理与检索数据的核心工具,而Oracle作为世界上最流行的商业数据库管理系统之一,其强大的功能和广泛的应用使得掌握Oracle SQL变得至关重要。本笔记将涵盖...

    Oracle数据库课堂笔记

    以下是对Oracle数据库课堂笔记的详细解析,涵盖了从基础到进阶的重要知识点。 第一讲:Oracle简介 Oracle数据库是由甲骨文公司开发的,提供了一整套数据存储、管理和检索解决方案。它支持多种操作系统和硬件平台,...

    Oracle 10g 学习笔记

    这个笔记是学习oracle数据库过程中整理出来的,比较详细,适合于初学者。 │ oracle与tomcat端口冲突.txt │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置...

    Oracle笔记,每行代码都经过验证

    Oracle笔记,每行代码都经过验证,如果能把笔记里的例子都敲一遍,保证你学会Oracle,涉及系统结构、安全、查询、锁、表分区、数据库对象、PL/SQL语法、游标、子程序、程序包、触发器、内置程序包、备份与恢复、导入...

    (转)最全的SQL(Oracle)笔记集录

    此外,可能还会讨论Oracle特有的特性和功能,如PL/SQL、游标、触发器、分区表和数据库设计原则。 【标签】:“源码 工具” 这两个标签暗示了笔记中可能包含了实际的SQL源代码示例,帮助读者更好地理解和应用理论...

Global site tag (gtag.js) - Google Analytics