인터넷을 아무리 찾아봐도 아규멘트가 있는 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)