Função Nextval do Oracle Sequence

Funcao Nextval Do Oracle Sequence



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 sequências são comumente usadas para gerar os valores de chave primária exclusivos para registros em uma tabela de banco de dados.

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ência
COMEÇ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_sequence
COMEÇ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 :

1
2
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.