检查日志发现出现下述错误:
一个临时的解决方案是禁用这个job。
- ORA-12012: error on auto execute of job "SYS"."BSLN_MAINTAIN_STATS_JOB"
- ORA-06502: PL/SQL: numeric or value error
- ORA-06512: at "DBSNMP.BSLN_INTERNAL", line 2073
- ORA-06512: at line 1
一个临时的解决方案是禁用这个job。
- BEGIN
- sys.dbms_scheduler.disable( '"SYS"."BSLN_MAINTAIN_STATS_JOB"' );
- END;
查询MOS后发现原来是权限的问题:
【参考文档】AlertLog Errors: ORA-12012: Error On Auto Execute Of Job, ORA-06512: at "DBSNMP.BSLN_INTERNAL" [ID 1329618.1]
需要授予DBSNMP用户对SYS.DBMS_JOB 有EXECUTE的权限。
- SQL> select * from dba_tab_privs where table_name = 'DBMS_JOB';
- GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
- --------------- -------- ------------- --------- ------------- --------- ---------
- SYSMAN SYS DBMS_JOB SYS EXECUTE NO NO
- OWBSYS SYS DBMS_JOB SYS EXECUTE NO NO
- APEX_030200 SYS DBMS_JOB SYS EXECUTE NO NO
- EXFSYS SYS DBMS_JOB SYS EXECUTE NO NO
- PUBLIC SYS DBMS_JOB SYS EXECUTE NO NO
- SQL> grant EXECUTE on SYS.DBMS_JOB to DBSNMP;
- Grant succeeded
- SQL> select * from dba_tab_privs where table_name = 'DBMS_JOB';
- GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
- --------------- -------- ------------- --------- ------------- --------- ---------
- SYSMAN SYS DBMS_JOB SYS EXECUTE NO NO
- OWBSYS SYS DBMS_JOB SYS EXECUTE NO NO
- APEX_030200 SYS DBMS_JOB SYS EXECUTE NO NO
- EXFSYS SYS DBMS_JOB SYS EXECUTE NO NO
- DBSNMP SYS DBMS_JOB SYS EXECUTE NO NO
- PUBLIC SYS DBMS_JOB SYS EXECUTE NO NO