executar sequência de alteração imediata não está funcionando
Estou preso nesse script bem simples. Não está funcionando como eu esperava.
declare
st VARCHAR(1024);
begin
for x in (SELECT sequence_name FROM USER_SEQUENCES) loop
st := 'ALTER SEQUENCE ' || x.sequence_name || ' INCREMENT BY 1000';
execute immediate st;
st := 'select ' || x.sequence_name || '.nextval from dual';
execute immediate st;
st := 'ALTER SEQUENCE ' || x.sequence_name || ' INCREMENT BY 1';
execute immediate st;
end loop;
end;
/
Quando executo isso, parece que não funciona - todas as minhas seqüências permanecem como estão e não foram incrementadas em mil pelas declarações dinâmicas. Se eu verificarnextval
antes e depois do bloco anônimo, a diferença é de apenas 1, e não de 1001.
Se eu substituirexecute immediate
comdbms_output.put_line
e executar os comandos gerados manualmente, as seqüências são alteradas como eu quero.
o que estou perdendo?