Alert Log 상에 ORA-12012 와 ORA-06550 에러가 함께 나왔다면, DBMS_JOB 실행중 실패한 것입니다.
ORA-12012: 작업 21의 자동 실행중 오류 발생
ORA-06550: 줄 1, 열96:PLS-00201: 'XXXXXXXXX' 식별자가 정의되어야 합니다
ORA-06550: 줄 1, 열96:PL/SQL: Statement ignored
클라이언트 환경에서 PL/SQL(프로시져, 함수) 실행시 코드상에 오류가 있으면, 화면에 ORA-06550 에러가 발생하지만,
이때는 Alert Log 상에는 찍히지 않고 클라이언트 화면에만 나타납니다.
ORA-12012 와 ORA-06550 에러가 함께 발생했다면, DB내의 JOB 을 살펴봐야 합니다.
아래와 같은 시나리오를 생각해 볼 수 있습니다.
SQL> CONNECT system/manager
Connected.
SQL> DECLARE
2 jobno number;
3 begin
4 DBMS_JOB.SUBMIT(jobno,
5 'INSERT INTO test SELECT ename
6 FROM scott.emp;',
7 SYSDATE, 'SYSDATE+1/24/60');
8 COMMIT;
9 end;
10 /
PL/SQL procedure successfully completed.
SQL> SELECT job,failures FROM dba_jobs;
JOB FAILURES
--------- ---------
62 1
SQL> EXEC DBMS_JOB.RUN(62);
begin DBMS_JOB.RUN(62); end;
*
ERROR at line 1:
ORA-12011: execution of 1 jobs failed
ORA-06512: at "SYS.DBMS_IJOB", line 242
ORA-06512: at "SYS.DBMS_JOB", line 218
ORA-06512: at line 1
작업을 실행하는 클라이언트 환경에서는 위와 같이 ORA-12011, ORA-06512 에러가 발생하지만, Alert Log 에는 아래와 같이 ORA-12012, ORA-06550 에러를 기록합니다.
ORA-12012: error on auto execute of job 62
ORA-06550: line 1, column 143:
PLS-00201: identifier 'SCOTT.EMP' must be declared
ORA-06550: line 1, column 96:
PL/SQL: SQL Statement ignored
위의 경우, PLS-00201 에러에서 원인을 정확히 알려주고 있습니다. SCOTT 유저의 EMP 테이블에 대한 권한이 없어서 발생한 에러입니다.
아래와 같이, scott 유저로 접속해서 조회권한을 주면 해결됩니다.
SQL> CONNECT scott/tiger
Connected.
SQL> GRANT SELECT ON emp TO SYSTEM;
Grant succeeded.
SQL> CONNECT system/manager
Connected.
SQL> EXEC DBMS_JOB.RUN(62);
PL/SQL procedure successfully completed.
참고) 오라클 Alertlog 파일 분석 프로그램 다운로드
'IT관련' 카테고리의 다른 글
오라클 에러 정보 (ORA-00600) - Internal Error Exception (0) | 2019.06.12 |
---|---|
HDD 하드디스크의 표기용량, 실제용량 차이나는 이유 (1) | 2019.06.09 |
오라클 에러 정보 (ORA-31) - DBA가 세션을 Kill 했으나 좀 기다려야 할 때 발생하는 (0) | 2019.06.06 |
오라클 에러 정보 (ORA-28) - 이미 Kill 된 세션을 접근하려고 할 때 발생하는 (0) | 2019.06.06 |
오라클 ADW 클라우드 데이터베이스에 대한 나름 간단정리 (0) | 2019.06.06 |