Oracle Sequence NextVal Função

Oracle Sequence NextVal Função
No Oracle, uma sequência refere -se a um objeto de banco de dados que gera uma série de valores numéricos de acordo com um incremento especificado. As seqüências são comumente usadas para gerar os valores principais exclusivos para registros em uma tabela de banco de dados.

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.