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_PRODUCTOSMINVALUE 1MAXVALUE 999999999999999999999999999START WITH 1INCREMENT BY 1CACHE 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 ;
Muy buena pagina, la tomo de referencia cada vez que me surge una duda en el codigo.Recomendada.-
La uso para referencia de conceptos básicos. Estaría bueno que ahonde un poco más en algunos temas, de manera opcional.
se puede recuperar una variable de salida tipo record
Hola tengo la siguiente consulta... Por ejemplo tengo un sistema q tiene una secuencia por cada departamento, existe la posibilidad de tener una multisecuencia sin necesidad de tener q crear una por una ?? gracias por la respuesta.
Para preguntar utiliza los foros.