zoukankan      html  css  js  c++  java
  • Oracle游标cursor1基础和隐式游标

    --指向表行的指针,一次一行,一般向前移动 Resultset
    --游标永远代代表的是一行数据。
    /*
    使用步骤
    第一步:声明游标,就像是声明一个变量样。
            游标的关键字就是cursor.
            Declare
                --游标关键字在前面
                Cursor  myCusor is select * from someTable;
            Begin
                    //代码
            End;
    
     第二步:声明游标后并不能直接使用-打开游标
            Declare
                --游标关键字在前面
                Cursor  myCusor is select * from someTable;
            Begin
                    Open myCursor;    
            End;
    第三步:在遍历中,使用fetch遍历数据
            Declare
                --游标关键字在前面
                Cursor  myCusor is select * from someTable;
            Begin
                    Open myCursor;    
                    Loop
                        Fetch myCusor into 你声明的变量;
                        --加上一个判断,是否到了行了最后
                        Exit when myCursor%notfound;
                    End loop;
            End;
    第四步:关闭游标
            Declare
                --游标关键字在前面
                Cursor  myCusor is select * from someTable;
            Begin
                    Open myCursor;    
                    Loop
                        Fetch myCusor into 你声明的变量;
                        --加上一个判断,是否到了行了最后
                        Exit when myCursor%notfound;
                    End loop;
                    Close myCursor; - oracle默认情况下,最多只可以开15个游标。
            End;
    
    */
    
    /*
    游标的分类
    声明方式:
    隐式游标
            所有你在执行sql(CRUD)语句时,oracle都会默认的给你打开一个游标。
            游标名称叫SQL
                它包含以下属性:
                   ROWCOUNT – 这个查询或是修改的记录的数量。
                   Notfound没有发行现
                    
    显式游标
                是指用户在declare中显式声明的游标。
        动态的游标
    */
    --隐式的游标
    select * from EMP1;
    /*
    30
    30
    39
    200*/
    declare
    v_count int;
    v_found boolean;
    begin
    DELETE from emp1 where age=30;
    --获取行号
    v_count:=sql%rowcount;
    if not sql%isopen then
    SYS.DBMS_OUTPUT.PUT_LINE('xxxx数');
    end if;
    DBMS_OUTPUT.PUT_LINE('影响行数'||v_count);
    end;
    /*
    匿名块已完成
    xxxx数
    影响行数2
    */
  • 相关阅读:
    linux解压 tar命令
    kernel部分数据结构列表二(超级块)
    Linux QQ 的安装
    怎么把uclinux下载到EPCS中
    CentOS 5 上安装git
    【转】Linux下使用Evolution收发Email
    几个采样代码的对比
    NIOS II 安装uclinux的硬件要求
    S3C2440 Timer初始化方法
    基于NIOS II的液晶显示设计——ucGUI移植
  • 原文地址:https://www.cnblogs.com/xiaweifeng/p/3681434.html
Copyright © 2011-2022 走看看