create or replace procedure selectUser
(p_userID in varchar2,p_userPwd in varchar2, re_cnt out varchar2) 
is v_cnt number;
begin
select count(*) into v_cnt from user_Pwd where User_Id=p_userID and Pass_Word=p_userPwd;
re_cnt:=to_char(v_cnt);
end;
execute SelectUser('asrs','asrs')
这样执行上面带参数的procedure对么?
PLS_00306:wrong number or types of argumernts in call to 'Selectuser'

解决方案 »

  1.   

    你定义的procedure 有三个参数, 传入就两个参数当然出错了variable a varchar2(20);
    execute SelectUser('asrs','asrs', :a);
      

  2.   

    SQL> create or replace procedure test(p1 in varchar2,p2 out varchar2) is
      2  begin
      3    SELECT p1 INTO p2 FROM dual;
      4  end test;
      5  /Procedure createdSQL> var p2 varchar2;
    SQL> exec test('test',:p2);PL/SQL procedure successfully completed
    p2
    ---------
    testSQL>
      

  3.   

    第三个参数虽为out但需使用,然后才能得到值