如何使屏幕停止“鸡蛋时间”,在后台处理代码时继续前进

时间:2019-05-21 10:32:17

标签: oracle oracle-apex

我有一个小型应用程序快速应用程序。它运行一些代码,大约需要12分钟才能执行。 (谢谢,我在这方面不需要任何帮助),但是我想知道的是,在代码完成后,是否有办法让屏幕继续前进?

我有一个“提交后”过程,类型为“ PL / SQL代码”,在执行选项下,我有“提交后”。该代码是一个匿名块,它进行一些检查,然后执行一些存储过程。

为此触发的是应用程序中的“下一步”按钮。但是,单击“ NEXT”按钮将产生基本的“挂起”效果,而棘手的动画“ egg timer”事件将一直运行直到代码运行为止。

在后台执行代码的同时,是否有一种方法可以使屏幕前进到下一页,而用户不必等待?谢谢!

1 个答案:

答案 0 :(得分:3)

当然;将过程安排为数据库作业。一个简单的选项是使用DBMS_JOB。例如,如果您将自己的代码放入存储过程中(我们将其称为P_SCOUSE),那么您会

declare
  l_job number;
begin
  dbms_job.submit(job        => l_job,
                  what       => p_scouse,
                  next_date  => sysdate,
                  interval   => null);
  commit;
end;

该过程将在后台运行,使您可以在Apex应用程序中执行所需的任何操作。

另外,检查DBMS_SCHEDULER提供的服务。它比DBMS_JOB更新,还有一些其他选择,但是-正如我说的-对于如此简单的事情,DBMS_JOB完成了这项工作