Pular para o conteúdo principal

Questão de Arquitetura de Software — ORACLE — FGV 2023

Arquitetura de SoftwareORACLE
Código
fg065330
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Numa instalação Oracle, considere o script a seguir.create sequence xxxx;select xxxx.nextval from dual;A execução desse script provoca:
  1. Aa exibição do número 0;
  2. Ba exibição do número 1;
  3. Ca exibição do valor NULL;
  4. Da exibição dos números de 1 até 1000;
  5. Eum erro, pois não foi criada a tabela dual.
Revelar gabarito e comentário

GabaritoB — a exibição do número 1;

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: Sequências (Sequences)

Gabarito: letra B — a exibição do número 1.

Ao criar uma sequence no Oracle sem especificar o valor inicial (start with), o padrão é 1. O comando SELECT xxxx.nextval FROM dual recupera o próximo valor da sequência, que, na primeira chamada, retorna exatamente o valor inicial. A tabela DUAL é uma tabela dummy do sistema, sempre disponível, portanto não há erro. Assim, o script exibe o número 1.

  1. 1CREATE SEQUENCE xxxx
  2. 2START WITH 1 (padrão)
  3. 3INCREMENT BY 1 (padrão)
  4. 4SELECT xxxx.nextval FROM dual
  5. 5Retorna 1 (primeiro valor)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que exibe 0. O Oracle inicia sequences com 1 por padrão; para começar em 0, seria necessário especificar START WITH 0 no CREATE SEQUENCE.

Alternativa B — ✅ Correta ⟵ GABARITO

A sequência recém-criada, sem parâmetros, tem START WITH 1 e INCREMENT BY 1. O NEXTVAL retorna o primeiro valor disponível, que é 1.

Alternativa C — ❌ Incorreta

NEXTVAL nunca retorna NULL; sempre retorna um número inteiro conforme a definição da sequência.

Alternativa D — ❌ Incorreta

NEXTVAL retorna um único valor a cada chamada, não uma faixa de números. Para obter uma sequência de 1 a 1000 seria necessário executar NEXTVAL mil vezes ou usar CONNECT BY.

Alternativa E — ❌ Incorreta

A tabela DUAL é uma tabela dummy pertencente ao schema SYS e está sempre presente em qualquer banco Oracle (Oracle Database). Não gera erro.

NÃO CAIA NESSA!

A banca explora a confusão entre sequence.nextval e sequence.currval ou o fato de que, em outras situações, o primeiro valor poderia ser 0 (se configurado). Lembre-se: o padrão é 1, a menos que explicitamente alterado.

Gabarito: letra B.

Link permanente: /questoes/fg065330