Я хочу сбросить все последовательности на 0. Это как-то не работает.Можете ли вы сказать, почему?
create or replace
procedure reset_seq( p_seq_name in varchar2 )
is
l_val number;
begin
execute immediate
'select ' || p_seq_name || '.nextval from dual' INTO l_val;
execute immediate
'alter sequence ' || p_seq_name || ' increment by -' || l_val ||
' minvalue 0';
execute immediate
'select ' || p_seq_name || '.nextval from dual' INTO l_val;
execute immediate
'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;
/
Этот скрипт был из-за переполнения стека и работает для отдельных последовательностей.
begin
for i in (select sequence_name from dba_sequences where sequence_name like '%SEQ_PR%') LOOP
execute immediate 'reset_seq('||i.sequence_name||')';
end loop;
end;
/
Этот был написан мной:)
Отчет об ошибке - ORA-00900: недопустимый оператор SQL ORA-06512: в строке 3 00900. 00000 - «недопустимый оператор SQL»