Введение в СУБД "Oracle". Космачев В.М - 72 стр.

UptoLike

ГУАП МЦИТ
Введение в «ORACLE»
Под ред. проф. В.М.Космачёва
72
При достижении определенного предела, начинать возрастать заново с начального
значения.
Последовательность может создавать цепочки как увеличивающихся чисел, так и уменьшающихся, можно задавать и
приращение значений последовательности. Для создания последовательности требуется привилегия CREATE
SEQUENCE. Для создания последовательности в схеме другого пользователя необходимо иметь привилегию CREATE
ANY SEQUENCE.
Оператор определения последовательности имеет следующий синтаксис:
CREATE SEQUENCE [схема.]имя_последовательности
[INCREMENT BY приращение]
[START WITH начальное_значение]
[MAXVALUE наибольшее_значение | NOMAXVALUE]
[MINVALUE наименьшее_значение | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE число_элементов | NOCACHE]
[ORDER | NOORDER]
INCREMENT BY определяет интервал между последовательными номерами. Если этот параметр имеет
отрицательное значение, то последовательность убывающая, если положительноето последовательность
возрастающая. Значением по умолчанию является 1, параметр приращения может быть любым целым
START WITH параметром начальное_значение задает первый генерируемый номер. Если этот параметр
отсутствует, то для возрастающих последовательностей первый генерируемый номер равен значению
параметра MINVALUE, а для убывающей последовательности MAXVALUE.
MAXVALUE параметром наибольшее_значение задает максимальное значение, которое будет генерироваться
последовательностью. Это число должно быть больше, чем началъное_значение и наименьшее_значение. Это
число может быть любым числом с количеством знаков, не превышающим 28. Отсутствие верхней границы
указывается ключевым словом NOMAXVALUE, которое определяет для убывающих последовательностей
значение -1, а для возрастающих последовательностей 10
27
.
MINVALUE параметром наименьшее_значение задает минимальное число, которое будет генерироваться
последовательностью. Это число должно быть меньше чем начальное_значение и наибольшее_значение. Это
число может быть любым числом с количеством знаков, не превышающем 28. Отсутствие нижней границы
указывается ключевым словом NOMINVALUE, которое определяет для убывающих последовательностей
значение 10
26
, а для возрастающих последовательностей 1.
NOCYCLE является значением, используемым по умолчанию, и означает завершение генерирования
последовательности по достижении конца последовательности. Если при определении последовательности
указан параметр CYCLE, то после достижения очередным членом последовательности значения
наибольшее_значение (для возрастающих последовательностей) выдается значение параметра
наименьшее_значение. Если параметры наименьшее _значение и наибольшее_значение не указаны, то
используются их значения по умолчанию.
CACHE указывает на использование техники кеширования, что обеспечивает более быструю генерацию
элементов последовательности. число элементов определяет количество элементов области кеша, это число не
должно превышать разницы между MAXVALUE и MINVALUE.
ORDER обеспечивает генерацию последовательных элементов точно в порядке поступления запросов.
Одна последовательность может использоваться для генерации первичных ключей для нескольких таблиц. Если два
пользователя обращаются к одной последовательности, то каждый из них не видит последовательные номера,
сгенерированные для другого пользователя.
При использовании последовательности:
для выбора следующего номера - использовать вызов типа my_seq.NEXTVAL
для выбора текущего номера - вызов тип my_seq.CURRVAL
для выбора в переменную PL/SQL - вызов типа SELECT my_seq.CURRVAL INTO my_per FROM DUAL
из последовательности my_seq выбирается новое значение в переменную my_per
Псевдостолбец NEXTVAL используется для генерирования очередного номера из указанной последовательности.
Обращение имеет к NEXTVAL синтаксис:
Имя_последовательности.NEXTVAL;