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 ;
|