Imagem de fundo

Em um banco de dados Oracle, um desenvolvedor está...

Em um banco de dados Oracle, um desenvolvedor está configurando um trigger para garantir que, antes de inserir um novo pedido na tabela Pedidos, o Estoque do produto seja verificado para assegurar que há quantidade suficiente disponível. A tabela Estoque contém as colunas ProdutoID, QuantidadeDisponivel.


Qual das seguintes opções de trigger cumpre esta funcionalidade?


A

CREATE OR REPLACE TRIGGER VerificaEstoque

BEFORE INSERT ON Pedidos

FOR EACH ROW

BEGIN

SELECT QuantidadeDisponivel INTO

:NEW.QuantidadeDisponivel

FROM Estoque

WHERE ProdutoID = :NEW.ProdutoID;

IF :NEW.QuantidadeDisponivel <= 0 THEN

RAISE_APPLICATION_ERROR(-20001, 'Estoque insuficiente.');

END IF;

END;


B

CREATE OR REPLACE TRIGGER VerificaEstoque

AFTER INSERT ON Pedidos

FOR EACH ROW

DECLARE

qtdDisponivel NUMBER;

BEGIN

SELECT QuantidadeDisponivel INTO qtdDisponivel

FROM Estoque

WHERE ProdutoID = :NEW.ProdutoID;

IF qtdDisponivel <= 0 THEN

RAISE_APPLICATION_ERROR(-20001, 'Estoque

insuficiente.');

END IF;

END;


C

CREATE OR REPLACE TRIGGER VerificaEstoque

BEFORE INSERT ON Pedidos

DECLARE

qtdDisponivel NUMBER;

BEGIN

SELECT QuantidadeDisponivel INTO qtdDisponivel

FROM Estoque

WHERE ProdutoID = :NEW.ProdutoID;

IF qtdDisponivel < :NEW.Quantidade THEN

RAISE_APPLICATION_ERROR(-20002, 'Estoque

insuficiente para o pedido.');

END IF;

END;


D

CREATE OR REPLACE TRIGGER VerificaEstoque

BEFORE INSERT ON Pedidos

FOR EACH ROW

DECLARE

qtdDisponivel NUMBER;

BEGIN

SELECT QuantidadeDisponivel INTO qtdDisponivel

FROM Estoque

WHERE ProdutoID = :NEW.ProdutoID;

IF qtdDisponivel < :NEW.Quantidade THEN

RAISE_APPLICATION_ERROR(-20002, 'Estoque

insuficiente para o pedido.');

END IF;

END;