miércoles, 24 de septiembre de 2008

Cómo incrementar el valor de una secuencia

El siguiente PL/SQL es útil para incrementar el valor de una secuencia al valor que deseemos:
DECLARE
i NUMBER(10);

BEGIN

  SELECT SQCUENTA.NEXTVAL INTO i FROM dual;

  WHILE i < 1000000 LOOP 
    SELECT SQCUENTA.NEXTVAL INTO i FROM dual; 
  END LOOP;
END;
Esto me ha funcionado en una BD Oracle 10g.

En PostgreSQL existe la función setval que permite hacer lo mismo.
SELECT setval('SQCUENTA', 1000000);

3 comentarios:

sergio palacio dijo...

en oracle lo puedes hacer también SELECT RUNTPROD.NOMBRE SECUENCIA_SEQ.nextval FROM dual;

Oscar dijo...

Sergio, esa sentencia incrementa la secuencia a su siguiente valor. La función que publiqué incrementa la secuencia hasta un valor determinado, como cuando el valor actual de la secuencia está en digamos 100 y necesitas subirlo a 10000.

Saludos.

Henry Serrano dijo...

me salvo la vida compañero , gracias