sql%rowcount 为零??

begin
 starttime:=sysdate;
 v_maxtime := to_date('9999-12-31 00:00:00','yyyy-mm-dd hh24:mi:ss');  
 select max(f_logintime) into v_maxtime from t_gather_userloginlog;
 
  if  v_maxtime != to_date('9999-12-31 00:00:00','yyyy-mm-dd hh24:mi:ss') then
  
    insert  into t_gather_userloginlog (f_userid,f_username,f_logintime,f_userip,f_loginflag,f_logintype) --来源主网登陆的。
      select  f_uid,f_username,f_logintime,f_ip,f_flag,f_type from t_webloginlog_bak@link_stdby w where w.f_logintime > v_maxtime;
    
    insert into t_gather_userloginlog (f_userid,f_username,f_logintime,f_userip) --来源其他地方登陆。
     select ui_id,ui_username,ui_lasttime,ui_lastip
     from b_expuserinfo@link_stdby inner join t_webloginlog_bak@link_stdby
     on ui_username = f_username and ui_lastip = f_ip and f_logintime=ui_lasttime and f_logintime > v_maxtime
     where   f_username is null and ui_lasttime > v_maxtime;
   
     
  end if;
 
  rownumber := sql%rowcount;
  insert into t_base_sp_runlog values('gather','p_Gather_Day_i_UserLoginLog02',sysdate,'成功','INSERT', rownumber,round((dbms_utility.get_time-l_start)/100,2),starttime);
  commit;  

 

 

跑了很多天日志记录该过程影响行数为0! 不可能没有用户登陆啊

 

经过一番查证后:

    insert  into t_gather_userloginlog (f_userid,f_username,f_logintime,f_userip,f_loginflag,f_logintype) --来源主网登陆的。
      select  f_uid,f_username,f_logintime,f_ip,f_flag,f_type from t_webloginlog_bak@link_stdby w where w.f_logintime > v_maxtime;
  rownumber := sql%rowcount;--这里有数据
    


    insert into t_gather_userloginlog (f_userid,f_username,f_logintime,f_userip) --来源其他地方登陆。
     select ui_id,ui_username,ui_lasttime,ui_lastip
     from b_expuserinfo@link_stdby inner join t_webloginlog_bak@link_stdby
     on ui_username = f_username and ui_lastip = f_ip and f_logintime=ui_lasttime and f_logintime > v_maxtime
     where   f_username is null and ui_lasttime > v_maxtime;
      rownumber := sql%rowcount; --在这里变量被清空了
      
  end if;
 

 

你可能感兴趣的:(JOIN,sql,UI,Date,null,insert)