我建立一个包和一个主体,不知道为什么总是提示 :pls-00307:有太多的c1说明与此次调用相匹配,请高手提示!!谢谢
--------------程序包中的游标-----------------------
--声明程序包
create or replace package  pcursor2
is 
cursor c1(v_empno number) return emp%rowtype;
procedure p1(v_deptno number) ;
end pcursor2;--声明包主体create or replace package body pcursor2
is
 cursor c1 (a number)return emp%rowtype is select * from emp where deptno=a;
 procedure p1(v_deptno number)
 is
  v_rec emp%rowtype;
  
 begin 
       open c1(v_deptno);
       loop
       fetch c1 into v_rec ;
       exit when c1%notfound;
       dbms_output.put_line('员工工资为:'||v_rec.sal);
       end loop;
       close c1 ;
 end p1;
 end pcursor2;

解决方案 »

  1.   

    create or replace package pcursor2
    is  
    --cursor c1(v_empno number) return emp%rowtype; 
    procedure p1(v_deptno number) ; 
    end pcursor2; 
    create or replace package body pcursor2
    is 
    -- cursor c1 (a number)return emp%rowtype is select * from emp where deptno=a; 
     procedure p1(v_deptno number) 
     is 
     cursor c1 (a number)return emp%rowtype is select * from emp where deptno=10; 
      v_rec emp%rowtype; 
       
     begin  
           open c1(v_deptno); 
           loop 
           fetch c1 into v_rec ; 
           exit when c1%notfound; 
           dbms_output.put_line('员工工资为'||v_rec.sal); 
           end loop; 
           close c1 ; 
     end p1; 
     end pcursor2;