含有if else的存储过程

create or replace procedure addMessage is

cursor cursor1 is select max(p1.name) as names,p1.patient_id, f1.arrivel_time
  from ws_first_page f1, ws_precheck p1
where f1.precheck_id = p1.id
group by p1.patient_id, f1.arrivel_time
order by p1.patient_id,f1.arrivel_time desc;

mid varchar2(100);
mtime date;

begin
   delete from temp;
   
   for cursor_result in cursor1 loop
     begin
      
          if mid = cursor_result.patient_id then
          dbms_output.put_line('---如果是相等 则不是第一个 不插入---');
          else
           
               if abs(mtime - cursor_result.arrivel_time) > 3 then
                   dbms_output.put_line('---如果不是72小时回诊内 不插入---');
               else
                   insert into temp values (cursor_result.names);
               end if;
         
          insert into temp values (cursor_result.names);
          end if;

          mid := cursor_result.patient_id;
          mtime := cursor_result.arrivel_time;
         
       end;
       end loop;
      
       commit;
   end addMessage;

猜你喜欢

转载自zgcsy1986.iteye.com/blog/2148414