在维护一些较早项目的静配1.0系统时,根据用户提出的需求,又不想去修改后台程序代码的情况下,可通过Oracle自带的JOB作业进行定时任务调度,作业逻辑可采用存储过程、游标来实现。
例如,之前厦门二院静配中心需要每日对贵重药品和毒性药品进行使用情况登记的需求,通过以上方式做到快速高效满足用户需求的同时,也要注意一些异常日志的记录。
--定义一个游标变量c_row c_cursor%ROWTYPE ,该类型为游标c_cursor中的一行数据类型

--创建oracle定时执行作业

作业GENEGDRECORD_JOB每天一点执行存储过程PROC_GENEGDRECORD:生成当天的贵重药品登记记录和毒性药品登记记录
-- 查看job信息
select * from user_scheduler_jobs;
-- 查看job日志
SELECT * from user_scheduler_job_log where job_name = 'GENEGDRECORD_JOB';
--查看job运行日志
SELECT * from user_scheduler_job_run_details where job_name = 'GENEGDRECORD_JOB';
注意:之前作业稳定执行了几个月后,突然有一天用户反馈当天没有正常生成记录,经过和pda那边一起排查良久后,未发现错误日志,查看job运行日志也是状态正常。最终在考虑到出现问题前段时间,由于针剂药房不需再进行登记,导致之后的记录为空,所以存储过程虽然执行成功,但是之前没有对异常情况进行日志记录导致定位不到问题。故新增如下异常日志记录。目前厦门二院药品登记功能使用状况稳定良好。
