Функция Oracle Sequence Nextval

Funkcia Oracle Sequence Nextval



В Oracle последовательность относится к объекту базы данных, который генерирует ряд числовых значений в соответствии с указанным приращением. Последовательности обычно используются для создания уникальных значений первичного ключа для записей в таблице базы данных.

В этом руководстве мы узнаем, как использовать функцию NEXTVAL при работе с последовательностями Oracle.

ПРИМЕЧАНИЕ. В этом руководстве не рассматриваются основы создания последовательности Oracle. Обратитесь к нашему руководству по последовательностям Oracle, чтобы узнать больше.







Функция Oracle Nextval

Функция nextval в последовательности Oracle используется для получения следующего значения в заданной последовательности.



Мы можем выразить синтаксис функции, как показано в следующем фрагменте кода:



имя_последовательности.nextval

Функция не принимает никаких аргументов или параметров. Затем он возвращает следующее значение в определенной последовательности.





Пример демонстрации функций

Рассмотрим пример. Начнем с определения простой последовательности Oracle, как показано в следующем коде:

СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ test_sequence
НАЧАТЬ С 1
УВЕЛИЧЕНИЕ НА 1 ;

Мы используем оператор CREATE SEQUENCE для инициализации новой последовательности Oracle. Затем мы определяем, с какого значения начинается последовательность, и значение приращения для каждого нового сгенерированного значения.



В нашем примере test_sequence начинается со значения 1 и увеличивается на единицу при каждом новом значении. Это должно сгенерировать ряд числовых значений, начиная с 1,2,3,4,5… и т. д.

Использование функции Oracle Nextval

Мы можем использовать функцию следующего значения из последовательности test_sequence, чтобы получить следующее значение, как показано ниже:

Выбрать test_sequence.nextval из двойного;

Это должно вернуть следующее значение из последовательности, как показано ниже:

Если вы снова вызовете оператор, он должен вернуть следующее значение в ряду, равное 2.

Это продолжается до тех пор, пока значения не будут исчерпаны или вы не достигнете максимального значения, определенного в последовательности. Посмотрите наш учебник по последовательности Oracle, чтобы узнать, как установить минимальное и максимальное значения.

Использование функции Nextval для циклического перебора значений

Мы также можем использовать функцию nextval для вывода чисел от 1 до 10, как показано в следующем коде:

СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ looper_sequence
НАЧАТЬ С 1
УВЕЛИЧЕНИЕ НА 1 ;

установлен СЕРВЕРВЫХОД включен;
НАЧИНАТЬ
ДЛЯ Я В 1 .. 10
ПЕТЛЯ
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
КОНЕЦ ПЕТЛИ;
КОНЕЦ;

Предоставленный код создает новую последовательность с именем looper_sequence, которая начинается с 1 и увеличивается на 1 для каждого нового сгенерированного значения.

Затем мы включаем параметр SERVEROUTPUT, который позволяет пакету DBMS_OUTPUT отображать сообщения в консоли SQL*Plus.

Наконец, мы заключаем цикл for в оператор end/begin для перебора диапазона значений от 1 до 10. Затем мы вызываем функцию DBMS_OUTPUT.PUT_LINE для каждого значения в диапазоне и печатаем следующее значение в последовательности looper_sequence в приставка.

Код печатает следующие десять значений в последовательности цикла. В нашем случае это будет значение от 1 до 10 или от 11 до 20… и так далее для каждого нового звонка.

Результирующий вывод :

1
2
3
4
5
6
7
8
9
10


PL / Процедура SQL успешно завершена.

Использование функции Nextval в операторе вставки

Мы также можем использовать функцию nextval в операторе вставки в качестве первичного ключа. Например:

вставить в пользователи ( я бы ,first_name,credit_card,country )
ценности ( test_sequence.nextval, 'Джеймс Смит' , '4278793631436711' , 'Объединенные Арабские Эмираты' ) ;

В данном примере мы вызываем функцию nextval из test_sequence, чтобы вставить значение для столбца id в таблицу.

Заключение

В этом посте вы узнали, как использовать функцию Oracle nextval для получения следующего значения в последовательности. Вы также узнали, как использовать эту функцию для перебора набора значений или для вставки уникального значения в столбец таблицы.