Questão nº 47
Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 47)
No contexto do Oracle, analise o comando a seguir e as afirmativas a respeito das consequências desse mesmo comando.
```sql
create global temporary table temp
( a int not null primary key,
b varchar(20) not null );
```
I. Dados introduzidos numa sessão (em inglês, session) são removidos no fim da sessão.
II. Dados inseridos numa sessão podem ser acessados somente pela própria sessão.
III. Ao término de uma transação por meio de um comando commit, os dados são automaticamente removidos da tabela.
Está correto somente o que se afirma em:
- AI;
- BII;
- CI e II; (alternativa correta)
- DI e III;
- EII e III.
Resposta comentada
Gabarito Alternativa C
Conceito-chave: A tabela temporária global do Oracle tem escopo de sessão por padrão: os dados são privados de cada sessão e duram até o fim dela, mas não são apagados a cada COMMIT (a menos que você use ON COMMIT DELETE ROWS, que não foi usado no comando).
- (A) Incorreta: A afirmativa I está correta (dados somem no fim da sessão), mas a alternativa A diz que só ela é correta, ignorando a afirmativa II, que também é verdadeira.
- (B) Incorreta: A afirmativa II está correta (isolamento por sessão), mas a alternativa B ignora a afirmativa I, que também é verdadeira.
- (C) Correta: As afirmativas I e II são verdadeiras: a tabela temporária global padrão (
ON COMMIT PRESERVE ROWS) mantém os dados até o fim da sessão e cada sessão só enxerga seus próprios dados. - (D) Incorreta: A afirmativa III é falsa — o
COMMITpreserva os dados na tabela temporária global padrão; eles só são removidos no fim da sessão (ou comTRUNCATE/DELETEexplícito). - (E) Incorreta: A afirmativa III é falsa (como explicado acima), então qualquer combinação que a inclua está errada.
Armadilha da banca: O distrator mais tentador é a letra D, porque muitos alunos confundem tabela temporária global com tabela temporária ON COMMIT DELETE ROWS (que apaga no COMMIT). O comando do enunciado não tem essa cláusula, então o COMMIT não limpa nada — a pegadinha é assumir que "toda tabela temporária zera no commit".
Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.