ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于游标

关于游标

原创 Linux操作系统 作者:syb2ora 时间:2012-08-21 11:50:04 0 删除 编辑
游标:结果集
游标分类:
1.静态游标:(隐式、显示、sys_refcursor(可作参数传递))快照游标,结果集不受更新影响
2.动态游标:is ref cursor,结果集受更新影响

静态游标与动态游标最大的区别是静态游标在运行前将游标变量和SQL关联,
而动态游标恰恰相反是在运行后将游标变量和SQL关联。

静态游标例子:
南京-行者无疆(306792803) 10:25:53 
比如你一个表有10000条数据,在你获取第50条数据的时候,另外个session修改了第10000条数据,
当你游标获取到第10000条数据的时候,还是获取的更新前的数据

遗留问题:实验没有成功。

------------1---------------------------
-- Created on 2012-8-21 by ADMINISTRATOR 
declare 
  -- Local variables here
  i integer;
  TYPE c_c IS REF CURSOR RETURN tt%ROWTYPE;
  cur_t    c_c;
  cur_c    cur_t%ROWTYPE;
begin
  -- Test statements here
  OPEN cur_t FOR SELECT * FROM tt;
  LOOP
    dbms_lock.sleep(0.01);
    FETCH cur_t INTO cur_c;
    EXIT WHEN cur_t%NOTFOUND;
    dbms_output.put_line(cur_c.a);
  END LOOP;
  CLOSE cur_t;
end;

--------------2--------------------------
UPDATE  tt SET a=222222222222222222222222222 WHERE a=10000;
COMMIT;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26216631/viewspace-741464/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-05-07

  • 博文量
    15
  • 访问量
    25488