好记性不如烂笔头

有人的地方就有江湖。。。。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

光标(Cursor)==ResultSet

光标语法:

    CURSOR 光标名[(参数名 数据类型[,参数名 数据类型]...)]

         IS SELECT 语句;

用于存储一个查询返回的多行数据

例如:

cursor c1 is select ename from emp;

打开光标: open c1;(打开光标执行查询)

取一行光标的值: fetch c1 into pjob;(取一行到变量中)

关闭光标:close c1;(关闭游标释放资源)

pjob必须与emp表中的job列类型一致:

定义:pjob emp.empjob%type;

光标的属性:notfound isopen

oracle默认允许打开的光标数是300个。

命令查看: show parameter cursor;

举例:

--

set serveroutput on

declare
    --
    cursor cemp is select  ename,sal from emp;
    pename emp.ename%type;
    psal       emp.sal%type;

begin
    --open
    open cemp

       LOOP
            fetch cemp into pename,psal;
            --
            exit when cemp%notfound;
            --
            dbms_output.put_line(pename || psal);
       END LOOP;
    close cemp;
end;
/

 

posted on 2013-11-26 19:36  划根火柴点根烟  阅读(240)  评论(0编辑  收藏  举报