Javascript Oracle APEX动态操作锁定页面
我在OracleApex页面中有一个动态操作,它执行PL/SQL代码(一个创建BLOB的存储过程) 因此,当用户单击它时,后面的javascript(动态操作“运行”PL,页面被“锁定”,直到一切完成) 我如何才能使某些东西在完成此过程之前不会完全锁定浏览器Javascript Oracle APEX动态操作锁定页面,javascript,multithreading,oracle,oracle-apex,Javascript,Multithreading,Oracle,Oracle Apex,我在OracleApex页面中有一个动态操作,它执行PL/SQL代码(一个创建BLOB的存储过程) 因此,当用户单击它时,后面的javascript(动态操作“运行”PL,页面被“锁定”,直到一切完成) 我如何才能使某些东西在完成此过程之前不会完全锁定浏览器 谢谢如果您还没有升级到版本5,一个简单的方法就是使用 在数据库、函数或程序包中定义所需的功能 然后,在后台使用API启动该函数 例如,如果在包PROJECTX\u IO中定义了一个过程upload\u pending,则可以从以下内容开始:
谢谢如果您还没有升级到版本5,一个简单的方法就是使用 在数据库、函数或程序包中定义所需的功能 然后,在后台使用API启动该函数 例如,如果在包
PROJECTX\u IO
中定义了一个过程upload\u 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\u job
中返回的作业id执行任何操作。如果您知道在任何时候只有一个后台作业在运行,那么将其添加到数据库中的一行表中是有效的。这只会转到上面代码段的底部(在结束之前;
):
然后,在后台进程内,您可以访问进程的作业id。最后,您可以使用以下命令更改作业状态:
select job into p_job from t_job;
apex_plsql_job.update_job_status(p_job,
'Upload complete');
如何处理多个后台作业?APEX\u PLSQL\u作业包已弃用。建议改为使用DBMS_调度程序。@JeffreyKemp感谢您的提示
select job into p_job from t_job;
apex_plsql_job.update_job_status(p_job,
'Upload complete');