Sas*_*ash 2 oracle asynchronous odp.net
无论如何,有人可以在oracle中运行异步操作.
这是我的情况:我有一个昂贵的过程(说运行需要30分钟).我有一个基于Web的前端,控制此proc运行的时间.我正在寻找从前端触发proc的运行,而不是真的等待proc完成.控件应该回到Web应用程序,状态如"正在进行中".我特意寻找一种机制来控制回到前端而不等待proc完成执行.
提前致谢,
SK
我的第二个OMG小马的要求更具体.
根据您要完成的任务,您可能需要查看DBMS_JOBS包.这允许您将作业提交到异步运行的数据库.例如,如果您希望数据库在响应GUI时做一些计算成本高昂的事情,那么您的前端可以执行类似的操作
CREATE OR REPLACE PROCEDURE run_asynchronously( p_some_parameter IN PLS_INTEGER,
p_jobno OUT PLS_INTEGER )
AS
BEGIN
dbms_job.submit( p_jobno,
'BEGIN ' ||
' some_expensive_procedure( ' ||
to_char(p_some_parameter) || ' ); ' ||
'END;' );
RETURN p_jobno;
END;
Run Code Online (Sandbox Code Playgroud)
这将提交后台作业以运行SOME_EXPENSIVE_PROCEDURE,传入P_SOME_PARAMETER.如果SOME_EXPENSIVE_PROCEDURE执行无法回滚的操作(例如发送电子邮件或FTP文件),则直到底层事务提交才会启动作业.
| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |