前端之家收集整理的这篇文章主要介绍了
Oracle定时器调用存储过程,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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;
/