создание последовательности в оракуле - PullRequest
5 голосов
/ 19 мая 2011

Я хочу создать последовательность в oracle, где максимальное значение поля столбца (Empid) должно быть минимальным значением последовательности.

Ниже приведено то, что я нашел в нашем том же стековом обмене

create sequence mytemp_seq start with &v_Startval;

Эта команда предлагает мне ввести максимальное значение имени столбца, которое мне нужно ввести.

Как я могу зафиксировать значение & v_startval без его запроса, но непосредственно устанавливая значенияиз приведенного ниже утверждения

select max(empid) from mytemp..

Я пытаюсь так, как показано ниже

create sequence mytemp_seq start with (SELECT MAX(empid) from mytemp)

Но это не работает.

Ответы [ 2 ]

7 голосов
/ 19 мая 2011

Вы можете сделать это с помощью PL / SQL:

declare
  v_startval integer;
begin
  select max(empid)+1 into v_startval from mytemp;
  execute immediate 'create sequence mytemp_seq start with ' || v_startval;
end;
5 голосов
/ 19 мая 2011

В sqlplus вы можете сделать

col max_id new_value seq_min_val  
SELECT MAX(empid)+1 AS max_id from mytemp;
create sequence mytemp_seq start with &seq_min_val;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...