Neste tutorial, aprenderemos como usar a função NEXTVAL ao trabalhar com sequências do Oracle.
NOTA: Este tutorial não aborda os fundamentos da criação de uma sequência Oracle. Consulte nosso tutorial sobre sequências do Oracle para saber mais.
Função Oracle Nextval
A função nextval em uma sequência do Oracle é usada para buscar o próximo valor em uma determinada sequência.
Podemos expressar a sintaxe da função conforme mostrado no seguinte trecho de código:
sequence_name.nextval
A função não aceita nenhum argumento ou parâmetro. Em seguida, ele retorna o próximo valor na sequência definida.
Exemplo de Demonstração de Função
Tomemos em consideração um exemplo. Começamos definindo uma sequência simples do Oracle conforme mostrado no código a seguir:
CREATE SEQUENCE teste_sequênciaCOMEÇAR COM 1
INCREMENTO POR 1 ;
Usamos a instrução CREATE SEQUENCE para inicializar uma nova sequência do Oracle. Em seguida, definimos em que valor a sequência começa e o valor de incremento para cada novo valor gerado.
Em nosso exemplo, o test_sequence começa no valor de 1 e incrementa em um a 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 função next value da sequência test_sequence para obter o próximo valor, conforme mostrado a seguir:
selecionar test_sequence.nextval de dual;Isso deve retornar o próximo valor da sequência, conforme mostrado a seguir:
Se você chamar a instrução novamente, ela deve retornar o próximo valor da série, que é 2.
Isso continua até que os valores se esgotem ou você atinja o valor máximo definido na sequência. Confira nosso tutorial de sequência do Oracle para saber como definir os valores mínimo e máximo.
Usando a função Nextval para repetir valores
Também podemos usar a função nextval para imprimir os números de 1 a 10 conforme o código a seguir:
CREATE SEQUENCE looper_sequenceCOMEÇAR COM 1
INCREMENTO POR 1 ;
definir SERVEROUTPUT ativado;
COMEÇAR
PARA EU DENTRO 1 .. 10
CICLO
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
END LOOP;
FIM;
O código fornecido cria uma nova sequência chamada looper_sequence que começa em 1 e aumenta 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.
Por fim, incluímos um loop for dentro de uma instrução end/begin para iterar no intervalo de valores de 1 a 10. Em seguida, chamamos a função DBMS_OUTPUT.PUT_LINE para cada valor no intervalo e imprimimos o próximo valor na sequência looper_sequence para o console.
O código imprime os próximos dez valores na sequência do looper. No nosso caso, será o valor de 1 a 10 ou 11 – 20… e assim sucessivamente para cada nova chamada.
Saída resultante :
12
3
4
5
6
7
8
9
10
PL / Procedimento SQL concluído com sucesso.
Usando a função Nextval em uma instrução Insert
Também podemos usar a função nextval em uma instrução de inserção como uma chave primária. Por exemplo:
insira dentro de usuários ( Eu iria ,primeiro_nome,cartão_de_crédito,país )valores ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Emirados Árabes Unidos' ) ;
No exemplo dado, chamamos a função nextval do test_sequence para inserir o valor para a coluna id na tabela.
Conclusão
Nesta postagem, você descobriu como usar a função nextval do Oracle para buscar o próximo valor em uma sequência. Você também aprendeu como usar a função para iterar em um conjunto de valores ou inserir um valor exclusivo em uma coluna da tabela.