Está en la página 1de 0

Secuencias

ORACLE proporciona los objetos de secuencia para la generacin de cdigos numericos


automticos.
Las secuencias son una solucin fcil 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 quedara
del siguiente modo:
CREATE SEQUENCE SQ_PRODUCTOS;
Para obtener el siguiente valor de una secuencia debemos utilizar la funcin 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 funcin CURRVAL. Para
poder ejecutar la funcin CURRVAL debemos haber ejecutado previamente la funcin
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 ;