create or replace procedure GETUSERS1(pi_UNAME in VARCHAR2,
                                      pi_UPWD1 in VARCHAR2,
                                    cur_usres out sys_refcursor  ) IS
BEGIN
open cur_usres for
  SELECT *
    FROM USERS
   WHERE UNAME = pi_UNAME
     AND UPWD = pi_UPWD1;
END GETUSERS1;
ORACLE怎么执行这个存储过程

解决方案 »

  1.   

    exec procedure_name;-- orcall procedure_name;
      

  2.   

    在命令窗口,执行exec xxxxx
      

  3.   

    我用CALL GETUSERS1('LMM','LMM');执行不了啊报错
      

  4.   

    在命令窗口下: exec GETUSERS1('LMM','LMM');在sql窗口下:
    begin
    GETUSERS1('LMM','LMM');
    end;
      

  5.   

    你的procedure有三个参数
    你只传2各当然报错,虽然第三个是为了out用的。你也要加上
      

  6.   

    刚才又看了一下,你的返回值是个游标
    你需要先用declare定义一个游标变量。然后再调用你的过程
      

  7.   


    还需要一个游标参数
    var curl refcursor;
    exec GETUSERS1('LMM','LMM',:curl); 
    这样就OK了,还有这个在sqlplusw 或者sqlplus中是可以的,在plsql中不支持refcursor类型
      

  8.   

     如果是 PL/SQL 可以当点运行的,而且可以DEBUG。 直接测试就OK
      

  9.   

    求在P/SQL里面怎么执行这个存储过程,来查询出数据
      

  10.   

    直接右键你的存储过程,然后选择test,执行即可
      

  11.   

    怎么不能用EXEC命令来执行存储过程么???
      

  12.   

    命令是exec,如果是第三方工具是先编译在执行
      

  13.   


    当然可以啊 ,还需要一个游标参数
    var curl refcursor;
    exec GETUSERS1('LMM','LMM',:curl);  
    这样就OK了,还有这个在sqlplusw 或者sqlplus中是可以的,在plsql中不支持refcursor类型楼主你该结贴了