Questão de Banco de Dados — Oracle — FCC 2015
- Código
- fc020487
- Banca
- FCC
- Órgão
- MPE-PB
- Ano
- 2015
- Nível
- Superior
- Cargo
- Analista de Sistemas – Administrador de Banco de Dados
- AI e IV.
- BII e III.
- CI, II e IV.
- DII e IV.
- EI e II.
GabaritoC — I, II e IV.
Gabarito: letra C. No Oracle, triggers podem ser disparados por instruções DML (DELETE, INSERT, UPDATE), DDL (CREATE, ALTER, DROP) e operações de banco de dados (SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN). Instruções DTL (COMMIT, ROLLBACK, REVOKE) não disparam triggers. A banca cobra o conhecimento dos eventos que ativam gatilhos.
A definição no material de estudo esclarece:
Os triggers são, de fato, escritos para serem executados em resposta a qualquer um dos seguintes eventos: § Uma instrução de manipulação de banco de dados (DML) (DELETE, INSERT ou UPDATE) § Uma instrução de definição de banco de dados (DDL) (CREATE, ALTER ou DROP). § Uma operação de banco de dados (SERVERERROR, LOGON, LOGOFF, STARTUP ou SHUTDOWN).
Portanto, estão corretos os itens I (DML), II (DDL) e IV (operações de banco). O item III (DTL) está incorreto.
Evento / Instrução | Dispara Trigger no Oracle? | Exemplos |
|---|---|---|
I. DML (DELETE, INSERT, UPDATE) | ✅ Sim | DELETE FROM, INSERT INTO, UPDATE |
II. DDL (CREATE, ALTER, DROP) | ✅ Sim | CREATE TABLE, ALTER INDEX, DROP VIEW |
III. DTL (COMMIT, ROLLBACK, REVOKE) | ❌ Não | COMMIT, ROLLBACK, REVOKE |
IV. Operações de banco (SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN) | ✅ Sim | LOGON, STARTUP, SHUTDOWN |
Triggers DML são acionados por comandos DELETE, INSERT e UPDATE. É o tipo mais comum de trigger.
Triggers DDL são acionados por comandos como CREATE, ALTER e DROP. Exemplo: um trigger que registra alterações no esquema.
DTL (ou TCL) inclui COMMIT, ROLLBACK e SAVEPOINT; REVOKE é na verdade DCL. Nenhum desses comandos dispara triggers no Oracle. A banca tenta confundir incluindo um tipo de comando que não é evento de trigger.
Triggers de sistema (database event triggers) são acionados por eventos como LOGON, LOGOFF, STARTUP, SHUTDOWN e SERVERERROR.
O item III menciona DTL (COMMIT, ROLLBACK, REVOKE). O candidato desatento pode achar que todo comando SQL gera trigger, mas no Oracle apenas DML, DDL e eventos de banco disparam gatilhos. Memorize essa tríade.
Gabarito: letra C — corretos os itens I, II e IV.
Link permanente: /questoes/fc020487