Oracle APEX 动态操作锁定页面



>我在Oracle APEX PAGE中有一个动态操作,它执行PL/SQL代码(创建BLOB的存储过程(

因此,当用户点击它时,后面的javascript(动态操作,"运行"PL,页面被"锁定",直到一切完成(

在此过程完成之前,我如何制作不会完全锁定浏览器的东西?

谢谢

如果您尚未迁移到版本 5,一种直接的方法是使用 APEX_PLSQL_JOB 包。

在数据库内部、包中的函数或过程中定义所需的功能。

然后,使用 API 在后台启动函数。

例如,如果在包PROJECTX_IO 中定义了过程upload_pending,则可以使用 开始它:

declare
  p_job number
begin
p_job := apex_plsql_job.submit_process(
    p_sql => 'BEGIN PROJECTX_IO.upload_pending; END;',
    p_status => 'Uploading');
end;

您当前未对 p_job 中返回的作业 ID 执行任何操作。如果您知道任何时候都只有一个后台作业在运行,则有效的方法是将其添加到数据库中的单行表中。这只是转到上面代码片段的底部(在end;之前(:

delete from t_job;
insert into t_job values ( p_job );

然后,在后台进程中,您可以访问进程的作业 ID。最后,您可以通过以下方式更改作业状态:

select job into p_job from t_job;
apex_plsql_job.update_job_status(p_job,
    'Upload complete');

如何处理多个后台作业?

最新更新