1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
begin
dbms_scheduler.create_job(
job_name => 'APEX__JOB_LANG_LAUFEND'
,job_type => 'stored_procedure'
,job_action => 'lang_laufend'
,start_date => SYSDATE
,enabled => TRUE
);
dbms_lock.sleep(5)
end ;
declare
v_percent number:=0;
begin
set_item_property('blo_progress.progressbar',width, 0);
v_percent :=0;
pause;
loop
exit when v_percent =100;
SELECT (sofar / totalwork) * 100
INTO v_percent
FROM v$session_longops
WHERE opname = 'APEX__JOB_LANG_LAUFEND' AND sofar < totalwork;
-- message(v_percent);pause;
:blo_progress.percent:= v_percent||'%';
set_item_property('blo_progress.progressbar',width, round( v_percent,2));
synchronize;
dbms_lock.sleep(2);
end loop;
exception
when NO_DATA_FOUND then
v_percent := -1;
set_item_property('blo_progress.progressbar',width, 100);
:blo_progress.percent:= '100'||'%';
when TOO_MANY_ROWS then
v_percent := -1;
DBMS_SCHEDULER.drop_job (job_name => 'APEX__JOB_LANG_LAUFEND',FORCE=> true) ;
end; |