Bu hata, yığının pl/SQL kodunda işlenmeyen özel durumlar tarafından çözülmesinden kaynaklanır. Büyük olasılıkla programlayıcı, içindeki bazı kötü kodlarla bir prosedür yürütüyor.
yapılması gereken ilk şey
BEGIN
DBMS_SCHEDULER.DROP_JOB('myjob1');
END;
/
Sonra saklı yordam (ler) soruşturma başlatmak ve bazı istisna işleme ekleyin işi bırakmaktır (http://www.techonthenet.com/oracle/errors/ora06512.php bakınız).
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;
şöyle bu bir ora 06512. neden olabilir İşinizin tarafından çağrıldı Eğer bazı PL/SQL kodu bulunsun Örneğin
(Muhtemelen bazı günlük/izleri de eklemek gerekir senin pı içine/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
Artık işlenmeyen istisna ile değiştirin hata da yardımcı olabilir bildirilen mesajlar)
yılında, hat numaralarını bu daraltmak için Artık 06512 hatalarına neden olmamalı ve bu nedenle istendiğinde işiniz durur.
Burada kahin olur https://docs.oracle.com/cd/A97630_01/appdev.920/a96624/07_errs.htm
Umut içinde kural dışı durum işleme bazı iyi bilgi bu.
Bazı kavram kanıtlarını paylaşabilir misiniz? –
Yukarıdaki cevabı bazı bağlantılar ve örneklerle güncelledim. – Chris
İşte benzer bir sorunu olan birinin bir örneği. http://stackoverflow.com/questions/20178030/dbms-scheduler-drop-job-only-if-exists – Chris