본문 바로가기

IT관련

오라클 에러 정보 (ORA-12012, ORA-06550) - DBMS_JOB 실행중 발생한 에러

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 파일 분석 프로그램 다운로드