Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FUNDATEC 2023

Banco de DadosOracle
Código
qq896740
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
Considere o seguinte comando:CREATE SEQUENCE sequenciaquestaoSTART WITH 100INCREMENT BY 2NOCACHENOCYCLE;Analise as assertivas abaixo e assinale a alternativa correta.I. No ORACLE, se forem omitidas as cláusulas CACHE e NOCACHE na criação da SEQUENCE, o banco de dados irá fazer um CACHE de 20 sequencias por default.II. Quando uma transação gerou e utilizou valores de uma SEQUENCE e a transação for finalizada com ROOLBACK, os valores gerados para SEQUENCE também serão desfeitos e ela voltará ao valor que tinha antes.III. A primeira referência a sequenciaquestao.NEXTVAL retornará o valor 101.
  1. ATodas estão corretas.
  2. BTodas estão incorretas.
  3. CApenas I está correta.
  4. DApenas II está correta.
  5. EApenas III está correta.
Revelar gabarito e comentário

GabaritoC — Apenas I está correta.

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”.

Oracle SEQUENCE: cláusulas CACHE, transação e NEXTVAL

Gabarito: letra C. Apenas a assertiva I está correta. No Oracle, quando não se especifica CACHE nem NOCACHE na criação de uma sequence, o default é CACHE 20. As assertivas II e III são falsas: a sequence não é afetada por ROLLBACK (os valores gerados persistem) e o primeiro NEXTVAL retorna o valor definido em START WITH (100), não 101.

Assertiva

Conteúdo

Correta?

Motivo

I

No Oracle, se omitidas CACHE e NOCACHE, o default é CACHE 20

✅ Sim

Documentação oficial do Oracle confirma o padrão CACHE 20

II

ROLLBACK desfaz valores gerados pela sequence e a retorna ao valor anterior

❌ Não

Sequences são independentes de transação; ROLLBACK não as afeta

III

Primeiro NEXTVAL retorna 101

❌ Não

START WITH 100 → primeiro NEXTVAL retorna 100, não 101

1CACHE
Omitido → default 20
NOCACHE → sem cache
2Transação
NEXTVAL persiste
ROLLBACK não desfaz
3NEXTVAL
Primeira chamada = START WITH
Segunda chamada = START WITH + INCREMENT
Oracle SEQUENCE
LEVELsoulevel.com.br
Oracle SEQUENCE: CACHE (Omitido → default 20, NOCACHE → sem cache); Transação (NEXTVAL persiste, ROLLBACK não desfaz); NEXTVAL (Primeira chamada = START WITH, Segunda chamada = START WITH + INCREMENT)

Assertiva I — ✅ Correta

No Oracle, se as cláusulas CACHE e NOCACHE são omitidas, o banco de dados utiliza o valor padrão de CACHE 20. Isso está documentado na documentação oficial do Oracle para criação de sequences.

Assertiva II — ❌ Incorreta

Sequences são objetos independentes de transação. Uma vez que um valor é gerado com NEXTVAL, ele não é desfeito por um ROLLBACK. A sequence continua seu incremento normalmente, independentemente do sucesso ou falha da transação.

Assertiva III — ❌ Incorreta

O primeiro NEXTVAL de uma sequence retorna exatamente o valor especificado em START WITH. Como a sequence foi criada com START WITH 100, a primeira chamada a sequenciaquestao.NEXTVAL retorna 100, não 101. Apenas a segunda chamada retornaria 102 (100 + 2).

NÃO CAIA NESSA!

A assertiva III tenta confundir o candidato ao sugerir que o primeiro NEXTVAL retorna já o incremento. Lembre-se: NEXTVAL retorna o valor inicial puro; é CURRVAL que mostra o último valor gerado. Já a assertiva II explora a ideia intuitiva de que um ROLLBACK desfaz tudo, mas sequences fogem a essa regra — são objetos autônomos.

Gabarito: letra C — apenas a assertiva I está correta.

Link permanente: /questoes/qq896740