`
jinliyixi
  • 浏览: 17564 次
  • 性别: 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 游标学习笔记

    在PL/SQL中为所有SQL数据操纵语句(包括返回一行的select)隐式声明游标,称为隐式游标的原因是用户不能直接命名和控制此类游标.当用户在PL/SQL中使用数据操纵语言(DML)时,Oracle预先定义一个名为SQL的隐式游标

    Oracle 入门文档2

    Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/SQL 游标的使用 Oracle笔记 十、PL/SQL存储过程 Oracle笔记 十一、...

    Oracle 入门文档

    Oracle笔记 六、PL/SQL简单语句块、变量定义 Oracle笔记 七、PL/SQL 异常处理 Oracle笔记 八、PL/SQL跳转/判断/循环语句块 Oracle笔记 九、PL/SQL 游标的使用 Oracle笔记 十、PL/SQL存储过程 Oracle笔记 十一、...

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

    oracle知识点笔记,语法,触发器,存储过程,存储函数,流程控制,游标,异常处理,记录类型,视图,控制用户权限,高级子查询,set运算符,基本的sql_Select语句等等

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

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

    oracle学习笔记整理

    学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。

    Oracle 10g 学习笔记

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

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

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

    Oracle笔记及操作

    对oracle的一些操作,有视图,游标,事务,查看系统表中语法。

    Oracle笔记

    此笔记为个人通过自学所整理的oracle笔记,希望看到的人有什么建议告诉我,或者共同学习!里面内容主要包括:oracle增删改查、用户管理、索引、视图、PLSQL、存储过程、函数、游标、触发器等等!每个知识点都有案例...

    oracle基础笔记整理

    Oracle基础学习笔记,开窗排序函数,权限管理,递归查询,存储函数触发器游标等等

    oracle所有知识点笔记(全)

    这是我自己学习oracle的时候,写的代码案例和笔记,基本上每一个知识点都写的很清楚!大家可以作为参考! 该有的知识点都有! 基本的sql语法,触发器,存储过程,存储函数, 流程控制,游标,异常处理,记录类型,...

    oracle学习笔记

    oracle数据库学习笔记,包括存储过程,游标...

    Oracle七天速成笔记

    此笔记是参加oracle培训时记录的。一共七天。 内容包括:数据库系统基本概念 ,工具,SQL语言,数据查询(包括链接查询和分组统计查询)、数据操作(增删改查)、PL/SQL高级编程(视图,函数,存储过程,序列,索引...

    ORACLE_PlSql-甲骨文学习笔记

    三、ORACLE 10g新增的数据类型 4 说明 4 示例 4 特殊值 4 四、ORACLE PL/SQL简介 5 1 块结构 5 2 变量和类型 6 3 条件逻辑 6 4 循环 7 5 游标 8 №1声明一些变量,用于保存select语句的返回的列值 8 №2声明游标,并...

    oracle 笔记

    存储过程 游标 以及常用的语句 通俗易懂

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

Global site tag (gtag.js) - Google Analytics