› Fóruns › SQL e PL/SQL › Dúvida sintaxe em uma parte de uma trigger. › Dúvida sintaxe em uma parte de uma trigger.
31 de março de 2010 às 4:31 pm
#93459
Participante
Hm, entendo, suspeitei disso.
Então coloquei o exception no sub-bloco como você falou, porém está dando erro:
IF (v_se_critica = TRUE)
THEN
SELECT COUNT ( * )
INTO v_qtd
FROM TIPO_EVENTO_PROC_GRUPO_TIPO TEPGT
WHERE TEPGT.cod_tipo_evento = :new.cod_tipo_evento;
/*No caso de haver restrições então continua a trigger
e busca-se o cod_grupo_tipo_processo atual do processo
*/
IF (v_qtd 0)
THEN
SELECT cod_grupo_tipo_processo
INTO cgtp
FROM TIPO_PROCESSO
WHERE COD =
(SELECT cod_tipo_processo
FROM HIST_TIPO_LOTE
WHERE cod_lote = :new.cod_processo
AND data_termino = NULL)
AND cod_grupo_tipo_processo NOT IN
(SELECT cod_grupo_tipo_processo
FROM tipo_evento_proc_grupo_tipo tepgt
WHERE tepgt.cod_tipo_evento = :new.cod_tipo_evento);
EXCEPTION
/*Se o cod_grupo_tipo_processo do atual processo não constar entre as restrições então deve-se abortar a operação*/
WHEN no_data_found THEN
RAISE erro;
END;
END IF;
END IF;
Não seria o caso de “IF (NO_DATA_FOUND) THEN RAISE ERRO; ?