작업 스케쥴러를 걸고 싶은데 잘 안되네요.
우선 테이블을 하나 만들고 프로시저를 돌리면 현재시간이 인서트되도록 테스트를 해보고 있습니다.
프로시저만 돌릴땐 문제가 없습니다. EXEC PROC_INSERT_TEST
이걸 아래와 같은 쿼리로 잡을 만들었습니다.
next date는 현재시간의 2~3분정도로 주었습니다.
그리고 인터벌을 1분으로 주었구요.
DECLARE
X NUMBER;
BEGIN
DBMS_JOB.SUBMIT
(
Job => X
,What => 'PROC_INSERT_TEST;'
,Next_Date => to_date('03-07-2014 18:17:31','dd/mm/yyyy hh24:mi:ss')
,Interval => 'SYSDATE+1/1440'
,No_Parse => FALSE
);
END;
exec dbms_job.run(잡넘버)를 돌리면 다음과 같은 에러가 떨어집니다.
ORA-12011: 1 작업 실행 실패
ORA-06512: "SYS.DBMS_IJOB", 637행
ORA-06512: "SYS.DBMS_JOB", 284행
ORA-06512: 2행
----------------------------------------------------
EXEC DBMS_JOB.RUN(31)
SQL게이트 쓰고 있어서 해당 잡에서 우클릭하고 실행해도 같은 메시지구요.
잡을 몇개 만들어 테스트해봤는데 16번정도 시도하다가 broken=Y로 바뀝니다.
즉 잡이 안도는건 아니고 돌아갑니다.
그럼 이게 어디에 문제가 있을까요?
프로시저 실행부분일까요?
CREATE OR REPLACE PROCEDURE PROC_INSERT_TEST
IS
BEGIN
INSERT INTO t1 VALUES(sysdate);
COMMIT;
END;