Neste tutorial, aprenderemos a usar a função NextVal ao trabalhar com sequências Oracle.
Nota: Este tutorial não cobre o básico da criação de uma sequência Oracle. Consulte o nosso tutorial sobre as sequências Oracle para descobrir mais.
Oracle NextVal Função
A função Nextval em uma sequência Oracle é usada para buscar o próximo valor em uma determinada sequência.
Podemos expressar a sintaxe da função, como mostrado no snippet de código a seguir:
sequence_name.NextVal
A função não aceita nenhum argumento ou parâmetro. Em seguida, retorna o próximo valor na sequência definida.
Exemplo de demonstração da função
Vamos levar em consideração um exemplo. Começamos definindo uma sequência Oracle simples, como mostrado no código a seguir:
Crie sequência test_sequence
Comece com 1
Incremento em 1;
Usamos a declaração de sequência Create para inicializar uma nova sequência Oracle. Em seguida, definimos em que valor a sequência inicia e o valor de incremento para cada novo valor gerado.
Em nosso exemplo, a sequência do teste começa no valor de 1 e incrementos por um em cada novo valor. Isso deve gerar uma série de valores numéricos começando em 1,2,3,4,5… etc.
Usando a função Oracle NextVal
Podemos usar a próxima função de valor da sequência Test_Sequence para obter o próximo valor, conforme mostrado no seguinte:
selecione test_sequence.NextVal de Dual;
Isso deve retornar o próximo valor da sequência, conforme mostrado no seguinte:
Se você ligar para a declaração novamente, ele deve retornar o próximo valor na série, que é 2.
Isso continua até que os valores sejam esgotados, ou você atinge o valor máximo que é definido na sequência. Verifique nosso tutorial de sequência Oracle para aprender a definir os valores mínimo e máximo.
Usando a função NextVal para loop sobre os valores
Também podemos usar a função NextVal para imprimir os números de 1 a 10, como mostrado no código a seguir:
Crie sequência looper_sequence
Comece com 1
Incremento em 1;
defina o serverOutput em;
COMEÇAR
Para i em 1… 10
LAÇO
Dbms_output.Put_line (looper_sequence.nextval);
Loop final;
FIM;
O código fornecido cria uma nova sequência chamada Looper_Sequence que começa em 1 e incrementos em 1 para cada novo valor gerado.
Em seguida, habilitamos a opção ServerOutput, que permite que o pacote DBMS_Output exiba as mensagens no console SQL*Plus.
Finalmente, incluímos um loop para dentro de uma declaração final/iniciar para iterar em relação à faixa de valores de 1 a 10. Então chamamos o dbms_output.Função put_line para cada valor no intervalo e imprima o próximo valor na sequência looper_sequence no console.
O código imprime os próximos dez valores na sequência Looper. No nosso caso, será o valor de 1 a 10 ou 11 - 20… e assim por diante para cada nova chamada.
Saída resultante:
1
2
3
4
5
6
7
8
9
10
Procedimento PL/SQL concluído com sucesso.
Usando a função NextVal em uma declaração de inserção
Também podemos usar a função NextVal em uma declaração de inserção como uma chave primária. Por exemplo:
Insira nos usuários (ID, First_Name, Credit_Card, país)
valores (test_sequence.Nextval, 'James Smith', '4278793631436711', 'Emirados Árabes Unidos');
No exemplo dado, chamamos a função NextVal da Test_Sequence para inserir o valor da coluna ID na tabela.
Conclusão
Neste post, você descobriu como usar a função Oracle NextVal para buscar o próximo valor em uma sequência. Você também aprendeu a usar a função para iterar em um conjunto de valores ou para inserir um valor exclusivo em uma coluna de tabela.