Mam kilka procedur Wyrocznia:Jak rozwiązać ORA-27475: "JOB" musi być program lub łańcuch
create or replace procedure receive_sms (p_to_date in date)
is
..
end;
i
create or replace procedure send_sms (p_date in date)
is
..
end;
i chcę, aby utworzyć łańcuch oparciu na tych procedurach i dodać kroki do łańcucha i pewne zasady:
BEGIN
DBMS_SCHEDULER.CREATE_CHAIN (
chain_name => 'mobile_archive_chain',
rule_set_name => NULL,
evaluation_interval => NULL,
comments => NULL);
END;
/
--- define three steps for this chain. Referenced programs must be enabled.
BEGIN
DBMS_SCHEDULER.DEFINE_CHAIN_STEP('mobile_archive_chain', 'send', 'inforpilla.send_sms');
DBMS_SCHEDULER.DEFINE_CHAIN_STEP('mobile_archive_chain', 'receive', 'inforpilla.receive_sms');
END;
/
--- define corresponding rules for the chain.
BEGIN
DBMS_SCHEDULER.DEFINE_CHAIN_RULE ('mobile_archive_chain', 'TRUE', 'START send');
DBMS_SCHEDULER.DEFINE_CHAIN_RULE ('mobile_archive_chain', 'send COMPLETED', 'Start receive');
DBMS_SCHEDULER.DEFINE_CHAIN_RULE ('mobile_archive_chain', 'receive COMPLETED', 'END');
END;
/
--- enable the chain
BEGIN
DBMS_SCHEDULER.ENABLE('mobile_archive_chain');
END;
/
--- create a chain job to start the chain daily at 1:00 p.m.
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'start_archive',
job_type => 'CHAIN',
job_action => 'mobile_archive_chain',
repeat_interval => 'freq=daily;byhour=15;byminute=3;bysecond=0',
enabled => TRUE);
END;
/
Ale sprawdzanie tabeli dziennika widzę, że zadanie nie powiodło się z kodem błędu: 27475
SELECT * from USER_SCHEDULER_JOB_RUN_DETAILS ORDER BY LOG_DATE DESC
jak sugeruje usunąć parametry tworzą procedurę, ale wtedy mam te błędy:
CHAIN_LOG_ID="201095"
CHAIN_LOG_ID="201095",STEP_NAME="RECEIVE", ORA-27475: "TEST.RECEIVE_SMS" must be a PROGRAM OR CHAIN
CHAIN_LOG_ID="201095",STEP_NAME="SEND", ORA-27475: "TEST.SEND_SMS" must be a PROGRAM OR CHAIN
nie sądzę. z dokumentów https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse009.htm # ADMIN12456 –
Istnieje również inny problem w połączeniach łańcuchowych. Procedury, których oczekujecie, parametry (p_to_date) i te parametry nie są przekazywane podczas wywoływania łańcucha łańcucha. Spowoduje to problem. Nie ma bezpośredniego sposobu na przekazywanie parametrów łańcucha. Zobacz ten wpis: https://community.oracle.com/message/1459336#1459336 –