No contexto da codificação de um trigger de banco de dados ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Resposta Correta: C - new, old.
Na linguagem de programação PL/SQL, utilizada no banco de dados Oracle, os gatilhos (ou triggers) são blocos de código que são automaticamente executados em resposta a certos eventos em uma tabela ou visão. Eles são muito úteis para manter a integridade dos dados ou para auditar as mudanças que ocorrem no banco de dados.
Quando falamos sobre acesso aos valores dos campos que estão sendo processados por um gatilho, estamos nos referindo à capacidade de acessar os dados antes e depois da operação que disparou o gatilho. No Oracle, as variáveis :new e :old são usadas para este propósito:
- :new: Refere-se aos valores dos campos após a operação de DML (Data Manipulation Language) que incluem INSERT e UPDATE. Portanto, é como se a variável :new capturasse uma "fotografia" dos dados conforme eles ficarão após a modificação.
- :old: Refere-se aos valores dos campos antes da operação de DML, ou seja, os valores originais antes de serem alterados pelo comando INSERT ou UPDATE. Esta variável é uma espécie de "memória" dos dados anteriores à mudança.
Essas variáveis são utilizadas principalmente em gatilhos de linha, onde cada linha afetada pelo comando DML pode ser inspecionada individualmente usando :new e :old para comparar os valores antes e depois da execução do comando.
As outras opções apresentadas na questão não se referem a mecanismos de acesso aos valores dos campos em gatilhos do Oracle:
- after, before: São palavras-chave que definem a temporização do gatilho, ou seja, se ele será disparado antes ou depois da operação de DML, mas não são variáveis de acesso aos dados.
- inserted, deleted, updated: São termos que denotam as ações que podem disparar um gatilho, mas não são variáveis utilizadas no Oracle para referenciar os valores dos campos.
- pre, post: Podem sugerir uma ideia de temporalidade como "antes" e "depois", mas não são termos utilizados em PL/SQL para acesso aos dados em triggers.
- row, column: Indicam a granularidade de um gatilho (linha ou coluna), mas também não são variáveis para acessar os valores dos campos.
Portanto, entender o funcionamento e a aplicação das variáveis :new e :old é crucial para quem trabalha com triggers no Oracle e para responder corretamente questões como essa em provas de concursos públicos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
✅Gabarito(C)
Variáveis NEW e OLD
- Em uma trigger do tipo INSERT, podemos acessar os valores que serão gravados através da variável :NEW.
- No caso de uma trigger UPDATE, temos acesso aos valores alterados através do variável :OLD e dos valores a serem atribuídos através de :NEW.
- Para um comando DELETE estão disponíveis apenas os valores antigos, através de :OLD, uma vez que o registro não existirá após a execução do comando.
- O acesso a esses valores fornece flexibilidade para efetuação de testes e validações na trigger.
Fonte: https://www.devmedia.com.br/stored-procedures-e-triggers-no-oracle-artigo-sql-magazine-03/7629
No contexto da codificação de um trigger de banco de dados Oracle, as variáveis que permitem acesso aos valores dos campos que estão sendo processados são "new" e "old". Essas variáveis são utilizadas em triggers que respondem a eventos de inserção, atualização ou exclusão de dados.
- "new" refere-se aos novos valores que estão sendo inseridos ou atualizados na tabela.
- "old" refere-se aos valores antigos que estão sendo atualizados ou excluídos da tabela.
Essas variáveis são usadas para acessar os valores dos campos durante a execução do trigger e permitem realizar lógicas condicionais, comparações e manipulações dos dados.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo