procedure p_move(a_person in varchar2)
as
begin
   for x in (select b.c_a a,b.c_b b,a.c_a c
             from t_b b,t_a a 
             where b.c_a=a_preson 
             and   b.c_a=a.c_b)
   loop   ... -- 此处添加要处理的代码   end loop;
end p_move;

解决方案 »

  1.   

    Oracle 的存储过程不能直接返回一个数据集,
    必须有into语句,把数据集放在cursor里面返回
      

  2.   

    回复人: UandM(无) ( ) 信誉:100  2005-7-21 6:23:48  得分: 0  
     
     
       
    Oracle 的存储过程不能直接返回一个数据集,
    必须有into语句,把数据集放在cursor里面返回  
     
    是可以返回一个数据集的。如create or replace package PK_test
    as
    type p_rc is ref cursor;
    end;create or replace procedure p_test
     ( p_cursor out PK_test.p_rc)
     is 
     begin
     open p_cursor for select * from tablename
     end;
      

  3.   

    liuyi8903(找工作中......) 这位老兄说的不错,这样就可以输出了。
    不过具体怎么调用 ,还要看你自己用的语言了。
      

  4.   

    借哥们的帖子提个问。
    怎么在oracle中调用咋个存储过程?
    怎么在pb中调用这个存储过程?