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?

questionAnswers(2)

yourAnswerToTheQuestion