Erro Trigger - Oracle
Bom dia, Criei a trigger abaixo, ela verifica a capacidade da Sala e assim que a turma for criada, caso a quantidade seja maior que a capacidade da sala, terá que disparar uma exception.
CREATE OR REPLACE TRIGGER VERIFICAR_CAPACIDADE_SALA
BEFORE INSERT ON TURMA
FOR EACH ROW
DECLARE
V_CAPACIDADE NUMBER (3);
BEGIN
V_CAPACIDADE := TO_NUMBER(SELECT MIN (CAPACIDADE_ALUNO) FROM
(SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S
ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS
)A
WHERE CAPACIDADE_ALUNO > 0);
IF (V_CAPACIDADE = 0)
THEN
RAISE_APPLICATION_ERROR (-20202, NÃO É POSSÍVEL INSERIR ALUNOS PORQUE ULTRAPASSOU A CAPACIDADE DA SALA);
END IF;
END;
/
Mas quando executo está aparecendo o seguinte erro:
ERRO na linha 1:
ORA-06502: PL/SQL: erro numérico ou de valor : erro de conversão de número em carácter
ORA-06512: na SCOTT.VERIFICAR_CAPACIDADE_SALA, linha 7
ORA-04088: erro durante a execução do trigger SCOTT.VERIFICAR_CAPACIDADE_SALA
CREATE OR REPLACE TRIGGER VERIFICAR_CAPACIDADE_SALA
BEFORE INSERT ON TURMA
FOR EACH ROW
DECLARE
V_CAPACIDADE NUMBER (3);
BEGIN
V_CAPACIDADE := TO_NUMBER(SELECT MIN (CAPACIDADE_ALUNO) FROM
(SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S
ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS
)A
WHERE CAPACIDADE_ALUNO > 0);
IF (V_CAPACIDADE = 0)
THEN
RAISE_APPLICATION_ERROR (-20202, NÃO É POSSÍVEL INSERIR ALUNOS PORQUE ULTRAPASSOU A CAPACIDADE DA SALA);
END IF;
END;
/
Mas quando executo está aparecendo o seguinte erro:
ERRO na linha 1:
ORA-06502: PL/SQL: erro numérico ou de valor : erro de conversão de número em carácter
ORA-06512: na SCOTT.VERIFICAR_CAPACIDADE_SALA, linha 7
ORA-04088: erro durante a execução do trigger SCOTT.VERIFICAR_CAPACIDADE_SALA
Alberto Amaral.
Curtidas 0
Respostas
Marco Pinheiro
02/12/2011
Dúvida duplicada. Respondido em outra thread.
https://www.devmedia.com.br/forum/oracle/410147-Criar-uma-trigger-para-executar-procedure.html
Att.,
Marco.
https://www.devmedia.com.br/forum/oracle/410147-Criar-uma-trigger-para-executar-procedure.html
Att.,
Marco.
GOSTEI 0