Considere o seguinte comando: CREATE SEQUENCE sequenciaques...
CREATE SEQUENCE sequenciaquestao START WITH 100 INCREMENT BY 2 NOCACHE NOCYCLE;
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.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - Apenas I está correta.
Vamos analisar cada uma das assertivas para entender o tema da questão:
A sequência (SEQUENCE) no Oracle é um objeto que gera números sequenciais, não necessariamente consecutivos, mas sempre em uma ordem crescente ou decrescente. Eles são frequentemente usados para criar valores únicos para colunas de chave primária.
Assertiva I: Este comando CREATE SEQUENCE foi usado para criar uma SEQUENCE chamada sequenciaquestao. Se as cláusulas CACHE ou NOCACHE não forem especificadas, o Oracle usará um valor padrão para o cache de sequências, que é 20. Isso significa que o banco de dados mantém 20 valores da sequência na memória para acesso rápido, o que ajuda a melhorar a performance ao reduzir o número de vezes que é necessário acessar o disco para obter um novo valor. Essa assertiva está correta.
Assertiva II: As sequências são independentes de transações. Isso significa que uma vez que um valor de NEXTVAL é gerado, ele não é revertido mesmo se a transação for desfeita com um ROLLBACK. Portanto, os valores gerados para a SEQUENCE não serão desfeitos e o próximo valor de NEXTVAL será o subsequente ao último valor gerado, não voltando ao valor anterior ao da transação. Por isso, essa assertiva está incorreta.
Assertiva III: A SEQUENCE foi criada para começar do valor 100 e incrementar de 2 em 2. Assim, ao chamar sequenciaquestao.NEXTVAL, o primeiro valor que será retornado é 100, e não 101, pois o START WITH 100 define o ponto de partida para a sequência. Portanto, essa assertiva também está incorreta.
Com base na análise das assertivas, a alternativa correta é a C, pois somente a assertiva I está correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo