Attualmente sto lavorando sugli errori di registrazione in una procedura. L'obiettivo di questa procedura deve essere richiamato nei gestori di eccezioni negli altri pacchetti nel DB e registrare gli errori incontrati da ciascun programma. di seguito è il mio codice.numero di registrazione in oracolo
CREATE OR REPLACE PROCEDURE APMS.test_procedure AS
procedure write_error_log (errcode number, errstr varchar2) is
pragma autonomous_transaction;
-- this procedure stays in its own new private transaction
begin
INSERT INTO error_log
(ora_err_tmsp,
ora_err_number,
ora_err_msg,
ora_err_line_no)
values (CURRENT_TIMESTAMP,
errcode,
errstr,
'line number');
COMMIT; -- this commit does not interfere with the caller's transaction.
end write_error_log;
BEGIN
INSERT INTO mockdata
VALUES ('data1', 'mockname', 'mockcity');
exception when others then
write_error_log(sqlcode,sqlerrm);
raise;
END test_procedure;
/
Attualmente sto solo indurre un errore nel mio tavolo mock_data per registrare l'errore nella tabella error_log e vedere se il suo funzionale ho appena dato non posso capire come registrare la colonna numero di riga. Sono un principiante assoluto quindi qualsiasi aiuto sarebbe apprezzato. Addizionalmente, se qualcuno sa come sarei in grado di utilizzare questa procedura in altri pacchetti/procedure per registrare gli errori in altri pacchetti sarebbe anche fantastico. Sono qui per imparare così ogni commento è apprezzato, posso approfondire ulteriormente questo post se non sono chiaro.
Uso questo pacchetto da Steven Feurstein. Apparentemente non è più disponibile da Toad ma può essere trovato qui http://awads.net/wp/2007/08/08/new-oracle-plsql-error-management-framework-released/ Perché scrivilo quando puoi usare uno stabilito pacchetto? – kevinsky
Grazie per le risorse, sfortunatamente, sto usando Toad e il mio superiore vorrebbe che imparassi e scrivessi la procedura per gli altri programmi da eseguire nel loro gestore di eccezioni. – Jules