www.devjoker.com

Secuencias

    ORACLE proporciona los objetos de secuencia para la generación de códigos numericos automáticos. 

    Las secuencias son una solución fácil y elegante al problema de los codigos autogenerados.

    LA sintaxis general es la siguiente:


CREATE SEQUENCE <secuence_name>
[MINVALUE <min_val>]
[MAXVALUE <max_val>]
[START WITH <ini_val>]
[INCREMENT BY <inc_val>]
[NOCACHE | CACHE <cache_val>]
[CYCLE]
[ORDER];

    El siguiente ejemplo crea una secuencia SQ_PRODUCTOS.


CREATE SEQUENCE SQ_PRODUCTOS
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;

    Se puede simplificar la orden, tomando los valores por defecto. El ejemplo anterior quedaría del siguiente modo:


CREATE SEQUENCE SQ_PRODUCTOS;

    Para obtener el siguiente valor de una secuencia debemos utilizar la función NEXTVAL. NEXTVAL se puede utilizar el cualquier sentencia SQL DML (SELECT, INSERT, UPDATE).


SELECT SQ_PRODUCTOS.NEXTVAL
FROM DUAL;

    Podemos obtener el último valor generado por la secuencia con la función CURRVAL. Para poder ejecutar la función CURRVAL debemos haber ejecutado previamente la función NEXTVAL.


SELECT SQ_PRODUCTOS.CURRVAL
FROM DUAL;

    Para eliminar una secuencia definitivamente de la base de datos debemos utilizar la sentencia DROP.


DROP SEQUENCE
SQ_PRODUCTOS ;