随访表更新过程 3月4号

CREATE OR REPLACE PROCEDURE PROC_UPDATE_JXHEALTH_VISIT2 is
  v_sqlerrm VARCHAR2(500);

  TYPE JT_RECORD_TYPE IS RECORD(
    NAME           ZSBOOK1.NAME%TYPE,
    PID            ZSBOOK2.PID%TYPE,
    VISITDOCNAME   ZSBOOK2.VISITDOCNAME%TYPE,
    FOLLOWUPDATE   ZSBOOK2 .FOLLOWUPDATE%TYPE,
    NEXTFOLLOWDATE ZSBOOK2.NEXTFOLLOWDATE%TYPE,
    HEIGHT         ZSBOOK2.HEIGHT%TYPE,
    BWI            ZSBOOK2.BWI%TYPE,
    UP             ZSBOOK2.UP%TYPE,
    DOWN           ZSBOOK2.DOWN%TYPE,
    CID            ZSBOOK2.CID%TYPE,
    VISITSUM       ZSBOOK2.VISITSUM%TYPE);
  jt_record JT_RECORD_TYPE;

  CURSOR cur_jt IS
    SELECT DISTINCT J.NAME,
                    J.PID,
                    J.VISITDOCNAME,
                    J.FOLLOWUPDATE,
                    J.NEXTFOLLOWDATE,
                    J.HEIGHT,
                    J.BWI,
                    J.VISITSUM,
                    J.UP,
                    J.DOWN,
                    t2.CID
      FROM (select t.*
              from zsbook2 t
             where not exists (select *
                      from zsbook2
                     where t.followupdate < followupdate
                       and t.name = name
                       and t.pid = pid)
             order by pid) t2
      left join ZSBOOK2 J on j.pid = t2.pid
                         and j.name = t2.name;
BEGIN
  OPEN cur_jt;
  LOOP
    FETCH cur_jt
      INTO jt_record.NAME, jt_record.PID, jt_record.VISITDOCNAME, jt_record.FOLLOWUPDATE, jt_record.NEXTFOLLOWDATE, jt_record.HEIGHT, jt_record.BWI, jt_record.VISITSUM, jt_record.up, jt_record.DOWN, jt_record.CID;
    EXIT WHEN cur_jt%NOTFOUND;
 
    INSERT INTO HYPERTENSIONVISIT H
      (H.PID,
       H.NAME,
       H.RFLAG,
       H.VISITDOCNAME,
       H.FOLLOWUPDATE,
       H.NEXTFOLLOWDATE,
       H.HEIGHT,
       H.BWI,
       H.VISITSUM,
       H.BMI,
       H.CREATEUID,
       H.CREATTIME,
       H.UPDATEUID,
       H.UPDATETIME,
       H.BLDPRESSUREH,
       H.BLDPRESSUREVALUEL,
       H.HYPERTENSIONCID,
       H.FOLLOWSTATE)
    VALUES
      (jt_record.PID,
       jt_record.NAME,
       '0',
       jt_record.VISITDOCNAME,
       jt_record.FOLLOWUPDATE,
       jt_record.NEXTFOLLOWDATE,
       jt_record.HEIGHT,
       jt_record.BWI,
       jt_record.VISITSUM,
       '50.00',
       '001',
       SYSDATE,
       '001',
       SYSDATE,
       jt_record.UP,
       jt_record.DOWN,
       jt_record.CID,
       '05');
 
    IF (MOD(cur_jt%rowcount, 100) = 0) THEN
      COMMIT;
    END IF;
  END LOOP;
  CLOSE cur_jt;
  COMMIT;
EXCEPTION
  when others then
    v_sqlerrm := substr(SQLERRM, 1, 300);
    dbms_output.put_line('ERR=' || v_sqlerrm);
    rollback;
end PROC_UPDATE_JXHEALTH_VISIT2;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值