본문 바로가기

DB/__Oracle

인수(파라미터)가 있는 Procedure 또는 Function dbms_job.submit 등록하기

인터넷을 아무리 찾아봐도 아규멘트가 있는 Procedure 또는 Function에 대한 dbms_job등록 샘플이 없어서 올립니다..

 

--아규멘트가 있는 프로시져 dbms_job.submit  등록
--dbms_job.submit().. 처리할때 commit을 실행하지 않으면 현재 session 에서만 실행됨..

--아래 프로시져는 CARD_DEMAND_CREATE 프로시져를 처리할때 3개의 아규멘트 와 1개의 처리결 

   과를 리턴하는 프로시져다. 00:00분에 실행되도록 한다.

 


declare
    jobno   varchar2(10);
begin    
    dbms_job.submit(jobno, 'DECLARE p_inamt_no VARCHAR2(20);

                                                      p_okdate VARCHAR2(22); 

                                                      p_Userid VARCHAR2(20);

                                                      presult NUMBER;

                                       BEGIN 
                       CARD_DEMAND_CREATE(p_inamt_no,p_okdate,p_Userid,presult);             

                                      END;'

                                    , sysdate

                                    ,'Trunc(sysdate) + 1 + 0/24'

                                    , FALSE );
    dbms_output.put_line('jobno :'|| jobno);
    commit;
end;

 

--등록된 jos항목 조회

select * from user_jobs


 --실행중인 job정지
execute dbms_job.broken(107, true)      

--정지된 job삭제
execute dbms_job.remove(107)