我在包中有一个程序,我必须每天手动运行。如何在 oracle 10g 中由 oracle 自动完成。
执行过程有 3 个输入(2 个,1 个 varchar)和一个输出(varchar)
输入值对我来说将保持不变,但如果我必须改变它,我会做什么。谁能用简单的例子来解释我。
谢谢阿维
我在包中有一个程序,我必须每天手动运行。如何在 oracle 10g 中由 oracle 自动完成。
执行过程有 3 个输入(2 个,1 个 varchar)和一个输出(varchar)
输入值对我来说将保持不变,但如果我必须改变它,我会做什么。谁能用简单的例子来解释我。
谢谢阿维
看看dbms_job包。它易于使用,可以满足您的需求。
您可以使用 DBMS_JOB.iSubmit 函数,如下所示。
BEGIN
DBMS_JOB.isubmit ( job => 61,
what => 'YOUR_PROCEDURE;',
next_date => to_date('03.10.2014 00:30:00','dd.MM.yyyy HH24:Mi:ss'), -- start now INTERVAL => 'sysdate + 1' -- Run every day );
COMMIT;
END;
JOB:您可以使用未在 user_jobs 中使用的 ID。您可以使用以下查询检查它们。
select * from user_jobs;
什么:你的程序的名称带有“;” 在末尾。Next_date:您希望作业运行的时间。间隔:你工作的时间段。每天应该是 'sysdate+1'。
您可以使用以下脚本将其删除:
begin DBMS_JOB.REMOVE(JOB => 61); end;