1

我在包中有一个程序,我必须每天手动运行。如何在 oracle 10g 中由 oracle 自动完成。

执行过程有 3 个输入(2 个,1 个 varchar)和一个输出(varchar)

输入值对我来说将保持不变,但如果我必须改变它,我会做什么。谁能用简单的例子来解释我。

谢谢阿维

4

2 回答 2

2

看看dbms_job包。它易于使用,可以满足您的需求。

于 2013-10-19T00:19:07.120 回答
1

您可以使用 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;
于 2014-10-02T08:53:29.747 回答