PL/SQL 笔记

 1. 循环输出Cursor中的数据

 

-- Created on 2012/11/27 by JACKIE 
declare 
  cursor c_dept is select dept.deptno,dept.dname,dept.loc from dept;  --定义Cursor
  v_dno integer;          
  v_dme varchar2(20);     
  v_dloc varchar2(20);
begin
  open c_dept;  --打开Cursor
  
  /*
    --循环输出cursor中的数据 1
  */
  loop
    fetch c_dept into v_dno,v_dme,v_dloc;
    exit when c_dept %notfound;
    dbms_output.put_line(v_dno||' '|| v_dme||' '||v_dloc);
  end loop;


  /*
  -- 循环输出cursor中的数据 2
  fetch c_dept into v_dno,v_dme,v_dloc;
  while c_dept %found loop
    dbms_output.put_line(v_dno||' '|| v_dme||' '||v_dloc);
    fetch c_dept into v_dno,v_dme,v_dloc;
  end loop;
  */
  
  close c_dept;  --关闭Cursor
end;

 

2. 最简单的返回游标(SYS_REFCURSOR)的存储过程例子(个人比较喜欢这个方式,不需要package之类的要定义这个那个的)

   

create or replace procedure testp(rtn out SYS_REFCURSOR) as

begin
      open rtn for
       select * from dept;
end testp;

 

   

你可能感兴趣的:(pl/sql)