Env: Oracle 12 c
Не уверены в следующем и требуют подтверждения.
Если я вызову запланированное задание job_type PLSQL_BLOCK, которое будет выполняться из systdate + 30 секунд с параметром OUT, я предполагаю, что после завершения запланированного задания у меня будет доступ к значению параметра OUT, т.е. v_status
- это правильно на примере кода ниже?
Просто неуверен, когда речь идет о запланированных заданиях.
create or replace package body my_package as
procedure get_status ( in_curr_id in number,
o_status out varchar2 ) is
begin
select status
into o_status
from my_status_table
where curr_id = in_curr_id;
end get_status;
procedure process_task is
v_plsql varchar2(4000) := null;
v_status varchar2(10) := null;
v_curr_id number;
begin
v_curr_id := 100;
v_plsql := 'begin get_status (in_curr_id => ' || v_curr_id || ',
o_status => ' || v_status || '); end;'
dbms_scheduler.create_job(job_name => 'my_scheduled_job',
job_type => 'PLSQL_BLOCK',
job_action => v_plsql,
start_date => sysdate + NUMTODSINTERVAL(30, 'SECOND'),
enabled => true);
if v_status = 'OK' then
-- do required processing
else
dbms_output.put_line(v_status);
end process_task;
end my_package;
/