Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VINICIUS RAMOS

procedure

Recommended Posts

Preciso forçar um erro no insert da procedure para invocar uma outra procedure de exceção, porém quando o insert é executado, o processo pára. O que devo fazer para o processo continuar executando.INSERT INTO ACOMP (SEQ_ACOMP, SEQ_TPACOMP, SEQ_ITACOMP,DT_INICIO, PRAZO, SEQ_RESP, DT_PREV_CONCLUSAO, DT_CONCLUSAO, VALIDADE, ENVIA_ALERTA, CD_FORMACOMP, OBS, SEQ_CHAVE) VALUES (NULL, @pnSEQ_TPACOMP, @nSEQ_ITACOMP, @pdDT_INICIO, @pnPRAZO, @pnSEQ_RESP, @pdDT_PREV_CONCLUSAO, @pdDT_CONCLUSAO, @pnVALIDADE, @pnENVIA_ALERTA, @psCD_FORMACOMP, @psOBS, @pnSEQ_CHAVE) SELECT @ERROR= @@ERROR IF @ERROR > 0 DECLARE @NUM_ERRO VARCHAR(10), @ORIGEM VARCHAR(30), @MSG VARCHAR(250) BEGIN SELECT @NUM_ERRO = CONVERT(VARCHAR(250),@ERROR) SELECT @MSG = DESCRIPTION FROM master..sysmessages where error = @ERROR SELECT @ORIGEM = 'PR_ACOMP_001' EXEC PR_EXCEPTIONS_001 @NUM_ERRO, @ORIGEM, @MSG END

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai Vinicius,

 

testei aqui desta forma e passou na rotina de erro, rodando no query analyser

use northwind;declare @ERROR intinsert into Customers (customerid, companyname) values ('xmen', 'xmen-evolution')SELECT @ERROR = @@ERRORIF @ERROR > 0 	select @ERROR as erro
ao executar a primeira vez normal sem erros, na segunda execução aparece o erro de chave primaria e passa no select @ERROR as erro

 

 

tenta mudar o seu begin ai no tratamento de erro, pra logo no inicio depois do if

IF @ERROR > 0 BEGIN DECLARE@NUM_ERRO VARCHAR(10),@ORIGEM VARCHAR(30),@MSG VARCHAR(250)  SELECT @NUM_ERRO = CONVERT(VARCHAR(250),@ERROR) SELECT @MSG = DESCRIPTION FROM master..sysmessages where error = @ERRORSELECT @ORIGEM = 'PR_ACOMP_001'EXEC PR_EXCEPTIONS_001 @NUM_ERRO, @ORIGEM, @MSG END

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.