Questão de Arquitetura de Software — ORACLE — FGV 2023
Arquitetura de Software›ORACLE
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:
Aa exibição do número 0;
Ba exibição do número 1;
Ca exibição do valor NULL;
Da exibição dos números de 1 até 1000;
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.
1CREATE SEQUENCE xxxx
2START WITH 1 (padrão)
3INCREMENT BY 1 (padrão)
4SELECT xxxx.nextval FROM dual
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.