← Questões de Banco de Dados

Banco de Dados · FGV · 2022

Questão comentada de Banco de Dados

A respeito dos mecanismos de triggers do Oracle, analise as afirmativas a seguir. I. A cláusula “OF nome_da_coluna” é usada para disparar o trigger somente quando a coluna específica tiver seu conteúdo alterado (updated). II. A cláusula “WHEN” pode ser aplicada somente para trigger no nível de linha (row level). III. A cláusula “REFERENCING OLD AS …” é aplicada somente para operações de inserção na tabela associada ao trigger. Está correto o que se afirma em

Gabarito: B

Em Oracle, triggers sao mecanismos que disparam automaticamente diante de eventos como INSERT, UPDATE ou DELETE. A ideia eh simples: aconteceu algo na tabela, o gatilho entra em acao. O detalhe que a banca gosta de cobrar fica nas clausulas, porque cada uma tem uma funcao bem especifica. A clausula OF nome_da_coluna aparece em triggers de UPDATE para restringir o disparo apenas quando aquela coluna for efetivamente alterada. Ou seja, se voce quer reagir so quando um campo especifico mudar, essa eh a porta certa. Por isso a afirmativa I esta correta. Ja a clausula WHEN e usada em triggers do nivel de linha, ou seja, row level. Ela serve para colocar uma condicao sobre os valores antigos e novos de cada linha afetada, o que faz sentido apenas quando o trigger enxerga cada registro individualmente. Logo, a afirmativa II tambem esta correta. A afirmativa III escorrega: a clausula REFERENCING OLD AS nao eh exclusiva de insercao. Em geral, OLD faz sentido quando existem valores antigos para comparar, como em UPDATE e DELETE. Em INSERT nao ha valor anterior da linha, entao a frase da questao esta errada. Resultado: gabarito B, com I e II corretas apenas.

Continue treinando

Questões relacionadas