Oracle定时器调用存储过程
1、创建存储过程
--创建协同提示存储过程 CREATE OR REPLACE PROCEDURE P_DC_WORK_COOPERATION_WARNING IS V_SQL VARCHAR2(1000); BEGIN -- 1、删除数据 V_SQL:='DELETE FROM DC_WORK_COOPERATION_WARNING T WHERE T.NAME = ''工单处理'' AND T.USER_ID IN (SELECT RU.USER_ID --用户编码 FROM DC_SYS_MENU M,--菜单表 DC_SYS_ROLE_MENU RM,--角色与菜单关系表 DC_SYS_ROLE_USER RU --用户与角色关系表 WHERE M.MENU_ID = RM.MENU_ID AND RM.ROLE_ID = RU.ROLE_ID AND M.MENU_NAME = ''工单处理'')'; EXECUTE IMMEDIATE V_SQL ; COMMIT; -- 2、插入数据 INSERT INTO DC_WORK_COOPERATION_WARNING (COOPERATION_ID,--协同编码 NAME,--协同名称 CONTENT,--协同内容 STATUS,--状态(协同默认未读编码“01”) URL,--URL地址 USER_ID,--用户编码 CREATE_TIME --创建时间 ) SELECT SEQ_COOPERATION_WARNING.NEXTVAL AS COOPERATION_ID,--协同编码 NAME,--协同名称 CONTENT,--协同内容 STATUS,--状态(协同默认未读编码“01”) URL,--URL地址 USER_ID,--用户编码 CREATE_TIME --创建时间 FROM (SELECT '工单处理' AS NAME,--协同名称 '有工单未处理,请及时处理!' AS CONTENT,--协同内容 '01' AS STATUS,--状态(协同默认未读编码“01”) 'http://localhost:7001/web/login.jsp' AS URL,--URL地址 RU.USER_ID,--用户编码 SYSDATE AS CREATE_TIME --创建时间 FROM DC_SYS_MENU M,--菜单表 DC_SYS_ROLE_MENU RM,--角色与菜单关系表 DC_SYS_ROLE_USER RU --用户与角色关系表 WHERE M.MENU_ID = RM.MENU_ID AND RM.ROLE_ID = RU.ROLE_ID AND M.MENU_NAME = '工单处理'); COMMIT; END P_DC_WORK_COOPERATION_WARNING; /
2、定义定时器
--删除定时器 BEGIN FOR V IN(SELECT JOB FROM USER_JOBS WHERE WHAT LIKE '%P_DC_WORK_COOPERATION_WARNING;%') LOOP DBMS_JOB.REMOVE(V.JOB); END LOOP; COMMIT; END; /
--定义定时器 DECLARE JOB_SYN_DATAS NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT(JOB => JOB_SYN_DATAS,WHAT => 'P_DC_WORK_COOPERATION_WARNING;',NEXT_DATE => SYSDATE,INTERVAL => 'TRUNC(sysdate) + 1 + 6 / (24)'); COMMIT; END; /
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。