{"id":749,"date":"2017-07-09T16:32:00","date_gmt":"2017-07-09T19:32:00","guid":{"rendered":"http:\/\/www.profissionaloracle.com.br\/swillians\/2017\/07\/09\/capturando-erros-em-dml-s\/"},"modified":"2024-01-27T11:43:42","modified_gmt":"2024-01-27T14:43:42","slug":"capturando-erros-em-dml-s","status":"publish","type":"post","link":"https:\/\/www.profissionaloracle.com.br\/2017\/07\/09\/capturando-erros-em-dml-s\/","title":{"rendered":"Capturando Erros em DML’s"},"content":{"rendered":"\n

<\/p>\n\n\n\n

Capturando Erros em DML’s<\/h3>\n\n\n\n

\u00c9 de extrema necessidade se precaver dos erros que podem ocorrer em cargas de dados, transformando-os e\/ou sanitizando-os para uma melhor qualidade dos registros. Mas ora ou outra surgem linhas que trazem alguma informa\u00e7\u00e3o incompat\u00edvel com o tipo de dados de alguma coluna da tabela. \u00c9 a\u00ed que est\u00e1 o problema.<\/p>\n\n\n\n

Na verdade \u00e9 pr\u00e1tica comum de mercado criar tabelas acess\u00f3rias para aglutinar estes poss\u00edveis erros para uma posterior auditoria e tratativa. Mas grande parte das vezes vejo que o processo \u00e9 feito de forma manual, atrav\u00e9s de Exception\u2019s no c\u00f3digo PL\/SQL. N\u00e3o \u00e9 errado, contudo deixamos de utilizar uma \u00f3tima feature do Oracle, o qual automatiza o processo dentro do pr\u00f3prio comando DML.<\/p>\n\n\n\n

As cl\u00e1usulas LOG ERRORS, REJECT e LIMIT auxilia no preenchimento dos erros ocasionalmente ocorridos na tabela acess\u00f3ria criada pela procedure DBMS_ERRLOG.CREATE_ERROR_LOG. Ao utilizar estas op\u00e7\u00f5es o Oracle ir\u00e1 fazer todo o trabalho sujo.<\/p>\n\n\n\n

Vamos para a parte pr\u00e1tica para entender como este processo funciona:<\/p>\n\n\n\n