出生日期变更记录添加存储过程.sql


create or replace procedure update_birthday_his(i_rfid in varchar2) is
v_birthdayLast date;
v_birthday date;
v_updateTime date;
v_result varchar2(2048);

cursor r is
select h.birthday as birthday, case when h.update_time is null then h.his_time else h.update_time end as updateTime from his_animal_info h
where h.birthday is not null and h.rfid = i_rfid
order by h.update_time;

thedata r%rowtype;

begin
  open r;
  loop
    fetch r
      into thedata;
    exit when r%notfound;

    v_birthday := thedata.birthday;
    v_updateTime := thedata.updateTime;
    if(v_birthday <> v_birthdayLast) then
        v_result := v_result||to_char(v_updateTime,'yyyy-mm-dd hh24:mi:ss')||chr(10)||' --> '||to_char(v_birthday,'yyyy-mm-dd')||chr(10);/*字符串中换行用chr(10)*/
    end if;
    v_birthdayLast := v_birthday;
  end loop;
  update tbl_animal_info a set a.birthday_his = v_result
  where a.rfid = i_rfid;
  commit;
end;


猜你喜欢

转载自jimmy9495.iteye.com/blog/1313948