CREATE OR REPLACE PROCEDURE cp_da_logout(
i_voperator  IN VARCHAR2  ,     --登陆用户
i_vworkstationip  IN VARCHAR2 ,  --登陆IP
o_sretval  IN OUT NUMBER)
ASt_vloginstatus  VARCHAR2(1);
t_vlogintype  VARCHAR2(1);
t_dnow  DATE;
/*****
判断一个帐号在同一时间是否只有一个实例
返回0表示OK,非零则失败
******/
BEGIN
t_vlogintype :=  'W';--登陆类型都定为W
t_vloginstatus :=  '0';  --0表示退出
t_dnow :=  SYSDATE;
    --更新数据 BEGIN
      insert into workstationrecordd
      select * from workstationrecord
      where  wsip = i_vworkstationip
     AND operator = i_voperator
     AND logintype = t_vlogintype;      delete workstationrecord
       where  wsip = i_vworkstationip
     AND operator = i_voperator
     AND logintype = t_vlogintype;
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
   NULL;
   WHEN OTHERS THEN
   NULL;
END; o_sretval :=  0;END ;
    (先插后删,最后有赋值语句o_sretval :=  0;  那不就总是返回0 啊  看不懂,请高手指点)