plsq程序设计--游标

游标属性:
notfound 未找到数据返回true
found    找到数据返回true
rowcount 游标当前位置

declare
--声明游标,这时数据库并没有真正去select数据
       cursor c is
              select * from emp;
        v_emp c%rowtype;
begin
--打开游标,此时执行select
        open c;
--执行fetch后,游标自动向下移动一条数据。没有循环,所以只取出第一条数据
             fetch c into v_emp;
             dbms_output.put_line(v_emp.ename);
        close c;
end;


循环取得游标内所有数据

declare
       cursor c is
              select * from emp;
        v_emp c%rowtype;
begin
        open c;
             loop
                     fetch c into v_emp;
             exit when (c%notfound);
                     dbms_output.put_line(c%rowcount);
                     dbms_output.put_line(v_emp.ename);
                     
             end loop;
        close c;
end;


declare
       cursor c is
              select * from emp;
        v_emp c%rowtype;
begin
        open c;
             fetch c into v_emp;
             while (c%found) loop
                     dbms_output.put_line(c%rowcount);
                     dbms_output.put_line(v_emp.ename);
                     fetch c into v_emp;
             end loop;
        close c;
end;


declare
        cursor c is
               select * from emp;
begin
        for v_emp in c loop
            dbms_output.put_line(c%rowcount);
            dbms_output.put_line(v_emp.ename);
        end loop;
end;

你可能感兴趣的:(sql,C++,c,C#)