SELECT PkCode INTO v_code FROM mpsLogon WHERE UserID = UserID;

解决方案 »

  1.   

    v_code需要定义吗?
    还有一个问题,在SQL plus中如何调用这个存储过程
      

  2.   

    存储过程中必须使用select .... into ........ from ..... where  .....的语法!
      

  3.   

    应该根据是传入的UserID 来取值吧
    CREATE OR REPLACE PROCEDURE spcMpsGetOnlineUser(v_UserID varchar2, as_UserID out integer)
    IsBegin
        SELECT PkCode into as_UserID FROM mpsLogon WHERE UserID = v_UserID;
    end spcMpsGetOnlineUser;
      

  4.   

    谢谢各位,再问如何调用呢?
    begin 
    spcMpsGetOnlineUser();
    end;
      

  5.   

    declare
     
        v_UserID varchar2;
        as_UserID integer;
    begin 
         execute spcMpsGetOnlineUser(v_UserID , as_UserID);
         dbms_output.put_line(v_UserID);
    end;
      

  6.   

    Sorry,上面有些问题,更正:declare
     
        v_UserID varchar2;
        as_UserID integer;
    begin 
          v_UserID := '000000';
         execute spcMpsGetOnlineUser(v_UserID , as_UserID);
         dbms_output.put_line(as_UserID);
    end;
      

  7.   

    如果在存储过程中调用存储过程直接写
    过程名(参数1,参数2); 就可以了。
    如果在pl/sql中则需要用execute
      

  8.   

    Sorry,上面有些问题,更正:declare
     
        v_UserID varchar2(20);
        as_UserID integer;
    begin 
          v_UserID := '000000';
         spcMpsGetOnlineUser(v_UserID , as_UserID);
         dbms_output.put_line(as_UserID);
    end;
      

  9.   

    Sorry,上面有些问题,更正:declare
     
        v_UserID varchar2(20);
        as_UserID integer;
    begin 
          v_UserID := '000000';
         spcMpsGetOnlineUser(v_UserID , as_UserID);
         dbms_output.put_line(as_UserID);
    end;
      

  10.   

    select ... into 变量 from table_name where ...
     
    这是oracle中的用法,查询出来的结果总要放到变量来操作.
      

  11.   

    begin
       procname;
    end;
      

  12.   

    wangybyangxr(王永斌)     还是不行啊,spcMpsGetOnlineUser(v_UserID , as_UserID);参数有错误