

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Um desenvolvedor precisa criar um bloco PL/SQL que insere novos registros em uma tabela Clientes, que inclui as colunas ClienteID, Nome, Email e DataCadastro. Caso um registro com o mesmo Email já exista, uma exceção customizada deve ser levantada, indicando que o e-mail já está em uso.
DECLARE
e_email_em_uso EXCEPTION;
PRAGMA EXCEPTION_INIT(e_email_em_uso, -20001);
BEGIN
INSERT INTO Clientes(ClienteID, Nome, Email, DataCadastro)
VALUES (clienteSeq.NEXTVAL, 'Nome do Cliente',
'[email protected]', SYSDATE);
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
RAISE_APPLICATION_ERROR(-20001, 'Email já está em uso.')
END;
Considerando esses requisitos, qual dos seguintes blocos PL/SQL atende melhor à necessidade?
Utiliza a exceção DUP_VAL_ON_INDEX para capturar a tentativa de inserção de um e-mail duplicado, lançando e_email_em_uso com uma mensagem customizada.
Cria um trigger BEFORE INSERT na tabela Clientes para verificar a existência do e-mail e, em caso positivo, levanta a exceção e_email_em_uso.
Implementa uma consulta SELECT antes do INSERT para verificar a existência do e-mail. Se encontrado, levanta a exceção e_email_em_uso usando RAISE_APPLICATION_ERROR.
Emprega um bloco BEGIN ... END sem tratamento de exceção, assumindo que a restrição de unicidade no banco de dados previne a inserção de e-mails duplicados automaticamente.