Не удалось остановить работу dbms_scheduler

SQL> Exec  Dbms_Scheduler.stop_job('US_ALERT',true);
begin Dbms_Scheduler.stop_job('US_ALERT',true); end;
ORA-27466: internal scheduler error: 1870
ORA-06512: at "SYS.DBMS_ISCHED", line 227
ORA-06512: at "SYS.DBMS_SCHEDULER", line 674
ORA-06512: at line 1

Кто-нибудь имеет представление о том, что здесь происходит не так? База данных: Oracle Версия: 12c

1 ответ

Эта ошибка вызвана разматыванием стека необработанными исключениями в коде pl/SQL. Скорее всего, планировщик выполняет процедуру с плохим кодом. (См. http://www.techonthenet.com/oracle/errors/ora06512.php)

Первое, что нужно сделать, это бросить работу

BEGIN
   DBMS_SCHEDULER.DROP_JOB('myjob1');
END;
/

Затем начните исследовать свои хранимые процедуры и добавьте обработку некоторых исключений.

Например, вы могли бы иметь некоторый код pl/sql следующим образом

DECLARE pe_ratio NUMBER(3,1); 
BEGIN 
SELECT price / earnings INTO pe_ratio FROM stocks WHERE symbol = 'XYZ'; -- might cause division-by-zero error 
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', pe_ratio); COMMIT;
End;

Если это вызвано вашей работой, это может привести к ошибке 06512. (Возможно, вам понадобится добавить некоторые записи / трассировки в ваш pl/SQL, чтобы сузить это, номера строк в сообщениях об ошибках, о которых вы сообщили, также могут помочь)

Замени это

DECLARE pe_ratio NUMBER(3,1);   
BEGIN 
SELECT price / earnings INTO pe_ratio FROM stocks WHERE symbol = 'XYZ'; -- might cause division-by-zero error
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', pe_ratio);
 COMMIT; 
EXCEPTION -- exception handlers  begin 
WHEN ZERO_DIVIDE THEN -- handles 'division by zero' error 
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', NULL); 
COMMIT; ... 
WHEN OTHERS THEN -- handles all other errors 
ROLLBACK; 
END; -- exception handlers and block end here

Больше никаких необработанных исключений не должно приводить к появлению ошибок ora 06512, и поэтому ваша работа будет остановлена ​​по запросу.

Вот немного полезной информации об обработке исключений в oracle https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/07_errs.htm

Надеюсь, это поможет.

Другие вопросы по тегам