Oracle游标学习

declare
  -- 1 声明一个游标
  cursor emp_cursor is
    select ID,XM,KSNO from ZGXX where rownum <= 10; 
  v_stu_info emp_cursor%rowtype; 
  --  %rowtype: 声明 emp表的所有字段
begin
  -- 2 开启游标
  open emp_cursor;
  -- 3 获取数据(一次获取一行)循环获取 去掉loop ... end loop 则只查询一条
  loop 
     fetch emp_cursor
           into v_stu_info;
           -- 游标查不到数据了则结束循环
           exit when emp_cursor%notfound;
           -- 打印输出到控制台 --可以处理到另外表中 
           dbms_output.put_line(v_stu_info.ID || ' : ' || v_stu_info.XM);
  end loop;
  -- 4 关闭游标
  close emp_cursor;

end;

很久没写了,直接记录下使用心得,有时候感觉将一个表数据处理到另外表,使用INSERT语句一次性写完很麻烦,这样就可以使用游标的方式分开处理,当然进行实施运维该技能也是必不可少,新上项目的时候有很多数据需要实施人员后台快速转移好,或者造一些数据等。

摘抄了一段游标的解释,自己就不献丑瞎编了:

一、 游标
一、游标概述
1、游标是什么?
游标是SQL的一个内存工作区,由系统或用户以变量的形式定义,用来临时存储多条查询数据的一种数据结构(‘结果集’)。

2、游标分类
游标有两种类型:显式游标和隐式游标。在用到的SELECT…INTO…DELETE.语句,一次只能从数据库中提取一行数据,对于这种形式的查询和DML操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就要由程序员定义一个显式游标( cursor is select ),并通过与游标有关的语句进行处理。

3 、优缺点
(1) 提高 sql ‘执行效率’
(2) 牺牲 ‘内存’

二、游标4大属性
属性           返回值类型     作用
SQL%ROWCOUNT     整型      代表DML语句成功执行的数据行数  
SQL%FOUND       布尔型     值为**TRUE**代表插入、删除、更新或单行查询操作成功  
SQL%NOTFOUND    布尔型     与SQL%FOUND属性返回值相反  
SQL%ISOPEN      布尔型     判断游标是否 '开启'

--未完待续--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值