jueves, 17 de noviembre de 2011

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 ;

No hay comentarios:

Publicar un comentario