Вопрос по поводу последовательности Oracle - PullRequest
2 голосов
/ 20 сентября 2011

У нас уже есть последовательность в базе данных, теперь я должен изменить эту последовательность так, чтобы я начинал с определенного значения, которое я буду извлекать из БД. Я написал следующий код

DECLARE
  i_Seq   INTEGER;
BEGIN
  SELECT MAX (col_id) + 1 INTO i_Seq from Table;

  EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQHDR MINVALUE '|i_Seq|' MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH '|i_Seq|' CACHE 20 NOORDER NOCYCLE'
END;
/

У меня есть следующие вопросы.

  1. Должен ли я сначала удалить старую последовательность, или оракул сделает это сам?
  2. начинается с предложения при создании последовательности. Я правильно это использую? или я могу заменить его любым номером?

1 Ответ

7 голосов
/ 20 сентября 2011

Да, вам нужно было бы отбросить последовательность, если она уже существует.Опция CREATE OR REPLEACE SEQUENCE отсутствует.

Да, вы правильно используете предложение START WITH.Нет необходимости указывать MINVALUE, поскольку последовательность объявлена ​​как NOCYCLE.

...