Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024

Banco de DadosSQL
Código
ce190749
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário – Área: Apoio Especializado – Especialidade: Programação de Sistemas
Em determinada faculdade, para controlar os dados das monitorias prestadas por alunos a seus colegas, foram criadas as tabelas Imagem associada para resolução da questão por meio dos scripts SQL a seguir.Imagem associada para resolução da questãoSe a tabela Imagem associada para resolução da questãofor eliminada com o comando Imagem associada para resolução da questão do SQL, então, para desfazer essa eliminação utilizando o Oracle 21C, o comando a seguir deve ser executado, caso o parâmetro de inicialização Imagem associada para resolução da questãoesteja definido como Imagem associada para resolução da questãoImagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Recuperação de tabela no Oracle: FLASHBACK TABLE

Gabarito: Certo (C). No Oracle 21c, uma tabela eliminada com DROP TABLE pode ser recuperada com o comando FLASHBACK TABLE ... TO BEFORE DROP, desde que a tabela esteja na lixeira (recycle bin) — o que ocorre quando o parâmetro de inicialização RECYCLEBIN está definido como ON. A questão descreve exatamente esse cenário, e o comando apresentado é o correto para desfazer a eliminação.

O DROP TABLE no Oracle não apaga fisicamente a tabela e seus dados de imediato. Em vez disso, o Oracle move a tabela (e seus índices, gatilhos e outros objetos dependentes) para a recycle bin — um mecanismo de recuperação que permite restaurar objetos eliminados acidentalmente. Esse comportamento é controlado pelo parâmetro de inicialização RECYCLEBIN, que pode ser ON (padrão) ou OFF. Quando ON, o DROP TABLE coloca a tabela na lixeira; quando OFF, a tabela é eliminada de forma definitiva, sem possibilidade de recuperação via FLASHBACK TABLE ... TO BEFORE DROP.

O comando para restaurar a tabela é o FLASHBACK TABLE nome_da_tabela TO BEFORE DROP. Esse comando recupera a tabela da lixeira, restaurando sua estrutura e seus dados. Se houver mais de uma versão da tabela na lixeira (por exemplo, se a tabela foi eliminada e recriada várias vezes), o Oracle permite especificar o nome original ou o nome da lixeira para desambiguar. O comando também pode ser usado com a cláusula RENAME TO para dar um novo nome à tabela recuperada.

Na prática, o fluxo é: (1) a tabela é eliminada com DROP TABLE; (2) com RECYCLEBIN=ON, a tabela vai para a lixeira; (3) o comando FLASHBACK TABLE ... TO BEFORE DROP restaura a tabela com seus dados. Esse é um recurso valioso para recuperação de erros operacionais, evitando a necessidade de restaurar um backup completo do banco.

A pegadinha da banca está em confundir o FLASHBACK TABLE ... TO BEFORE DROP com outros comandos de recuperação, como FLASHBACK QUERY (que consulta versões passadas dos dados) ou FLASHBACK DATABASE (que recupera o banco inteiro). O comando específico para desfazer um DROP TABLE é o TO BEFORE DROP, que depende da lixeira. Guarde essa distinção: é exatamente nela que a questão se decide.

  1. 1DROP TABLE
  2. 2RECYCLEBIN=ON
  3. 3Tabela vai para a lixeira
  4. 4FLASHBACK TABLE ... TO BEFORE DROP
  5. 5Tabela restaurada com dados
LEVEL · soulevel.com.br

Item — ✅ CERTO

A afirmativa está correta. O comando FLASHBACK TABLE ... TO BEFORE DROP é o mecanismo do Oracle para recuperar uma tabela eliminada com DROP TABLE, desde que o parâmetro RECYCLEBIN esteja ON. A questão descreve esse cenário e o comando apresentado é o correto.

PEGA ESSA DICA!

Para questões de recuperação no Oracle, lembre-se: FLASHBACK TABLE ... TO BEFORE DROP recupera tabelas da lixeira (depende de RECYCLEBIN=ON); FLASHBACK QUERY consulta dados passados; FLASHBACK DATABASE recupera o banco inteiro. Se a questão mencionar DROP TABLE e recuperação, o comando é o TO BEFORE DROP.

Gabarito: letra C (Certo).

Link permanente: /questoes/ce190749