zoukankan      html  css  js  c++  java
  • 【PL/SQL练习】游标cursor :oracle 在执行sql语句时,为sql语句所分配的一个私有的内存区域

    隐式游标:一次只能返回一行结果(不需要定义,默认自动建立)
      显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果
     
      隐式游标的属性:
       sql%rowcout    统计在游标中处理的记录数
       sql%found      如果在游标中能找到符合条件的一条记录,结果为true
       sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true
       sql%isopen     判断游标是否打开,在隐式游标中默认游标自动打开

    1.隐式游标:

    sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true  
    SQL> declare
      2  
      3    v_id t1.id%type;
      4  
      5  begin
      6  
      7    v_id :=10;
      8  
      9    update t1 set id=20 where id=v_id;
     10    if  sql%notfound then
     11    insert into t1(id) values (v_id);
     12    commit;
     13    end if;
     14  end;

    2. sql%found      如果在游标中能找到符合条件的一条记录,结果为true

    SQL> declare
      2  
      3    v_id t1.id%type;
      4  
      5  begin
      6  
      7    v_id :=10;
      8  
      9    delete from t1 where id = v_id;
     10  
     11    if  sql%found then
     12    dbms_output.put_line('T1 recorder is delete !');
     13    commit;
     14    end if;
     15  end;

    3.sql%rowcout    统计在游标中处理的记录数

    SQL> declare
      2  
      3    v_id t1.id%type;
      4  
      5  begin
      6  
      7    v_id :=10;
      8  
      9    insert into t1 (id) values (v_id);
     10    delete from t1 where id = v_id;
     11  
     12    if  sql%found then
     13    dbms_output.put_line('T1 recorder is delete !');
     14    dbms_output.put_line('T1 recorders '||sql%rowcount||' rows was deleted !');                //统计删除的行数
     15    commit;
     16    end if;
     17  end;


     

  • 相关阅读:
    js的innerHTML和jquery的html
    CLR_via_C#.3rd 翻译[25.8 使用线程的理由]
    销魂睡姿16式
    CLR_via_C#.3rd 笔记[25.10 前台线程和后台线程]
    NHibernate Reading NotesBasic ConceptⅡ
    CLR_via_C#.3rd 翻译[25.6 CLR线程和windows线程]
    CLR_via_C#.3rd 翻译[25.4 CPU趋势 ]
    NHibernate Reading NotesBasic ConceptⅠ
    JQuery笔记Ⅰ朦胧篇
    NH菜鸟笔记Ⅰ
  • 原文地址:https://www.cnblogs.com/tomatoes-/p/6104302.html
Copyright © 2011-2022 走看看