fetch oracle 存储过程

     PROCEDURE T_ADD_CARE_TASK
     IS 
     v_time VARCHAR(12);            
     v_careId NUMBER(16);    
     v_doctorId NUMBER(16); 
     v_patientId NUMBER(16); 
     v_paperId  NUMBER(16); 
     v_userName VARCHAR2(50); 
     v_paperName VARCHAR2(128);
     v_taskDesc  VARCHAR2(256);
     v_msgText   VARCHAR2(256);
     v_RetCount  NUMBER(2);
     v_Cursor      MYCURSOR;
     v_crId        NUMBER(16);
     BEGIN
     
    OPEN v_Cursor FOR
    SELECT TO_CHAR(A.TIME,'YYYYMMDDHH24MI'),A.CARE_ID,B.DOCTOR_ID,B.PATIENT_ID,B.PAPER_ID
    INTO v_time,v_careId,v_doctorId,v_patientId,v_paperId
    FROM T_CARE_TIME_INFO A
    INNER JOIN T_DOCTOR_CARE_INFO B
    ON A.CARE_ID = B.CARE_ID;
    
    
    FETCH v_Cursor INTO v_time,v_careId,v_doctorId,v_patientId,v_paperId;
     WHILE v_Cursor%FOUND LOOP
          
     IF v_time = TO_CHAR(SYSDATE,'YYYYMMDDHH24MI') THEN
       v_crId:=SEQ_CARE_RECORD.nextval; -- T_CARE_RECORD  ID
     SELECT USER_NAME INTO v_userName FROM T_DOCTOR_INFO WHERE DOCTOR_ID = v_doctorId; ---获取医生名称
     SELECT PAPER_TITLE INTO v_paperName FROM T_PAPER WHERE PAPER_ID = v_paperId; ---获取问卷名称
     v_taskDesc:=v_userName||'医生要求您进行'||v_paperName||'随访';
     v_msgText:='{"doctorId":'||v_doctorId||',"crId":'||v_crId||',"paperId":"'||v_paperId||'","desc":"'||v_taskDesc||'"}';
     
 INSERT INTO T_TASK_INFO (TASK_ID,  TASK_TYPE, FROM_TYPE, FROM_ID, TO_ID, TASK_STATUS, CREATE_TIME, TO_TYPE, TASK_CONTENT)
 VALUES (SEQ_TASK_INFO_ID.NEXTVAL, 1, 1, v_doctorId, v_patientId, 1, sysdate, 2, v_msgText);
 
 ---插入随访历史记录表
 INSERT INTO T_CARE_RECORD (ID, CARE_ID, PATIENT_ID, PAPER_ID, STATUS, CREATE_TIME)
 VALUES (v_crId, v_careId, v_patientId, v_paperId, 0, sysdate);


 
 v_RetCount:=v_RetCount+1;
     END IF;
 
     FETCH v_Cursor INTO v_time,v_careId,v_doctorId,v_patientId,v_paperId;
   END LOOP; 
   
   --关闭游标
   CLOSE v_Cursor;
   
   IF v_RetCount>0 THEN
     COMMIT;
   END IF;
    END;    
end SY_TASK_PKG;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_JY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值