LABORATORIO 3 BLOQUES PL-SQL
ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES
SECUENCIAS
ORACLE proporciona los objetos de secuencia para la generación de códigos
numéricos automáticos.
Las secuencias son una solución fácil y elegante al problema de los códigos
autogenerados. Son muy útiles la creación de campos que serán clave Primaria.
Sintaxis
CREATE SEQUENCE
[MINVALUE ]
[MAXVALUE ][START WITH ]
[INCREMENT BY ]
[NOCACHE | CACHE ]
[CYCLE]
[ORDER];
MINVALUE: valor mínimo de la secuencia.
MAXVALUE: Valor máximo de la secuencia.
START WITH: La secuencia comienza en este valor.
INCREMENT BY: La secuencia se incrementará en este valor.
Ejemplo
El siguiente ejemplo crea una secuencia SQ_PRODUCTOS
CREATE SEQUENCE SQ_PRODUCTOS
MINVALUE 1
MAXVALUE999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
Profesor: Juan Cubillos G.
Página 1 de 10
INSTITUTO PROFESIONAL DuocUC
ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES
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).
Ejemplo
SELECT SQ_PRODUCTOS.NEXTVAL
FROM DUAL;Para 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.
Ejemplo
SELECT SQ_PRODUCTOS.CURRVAL
FROM DUAL;
Para eliminar una secuencia definitivamente de la base de datos debemos utilizar la
sentencia DROP.
Ejemplo
DROP SEQUENCE SQ_PRODUCTOS;
Profesor: Juan Cubillos G.Página 2 de 10
INSTITUTO PROFESIONAL DuocUC
ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES
UTILIZACIÓN EN BASE DE DATOS
Creación de la Tabla Productos
Create table productos (
codigo number not null primary key,
nombre varchar2(100) unique not null,
precio number)
Inserción de información a la tabla productos
Insert into productos values (
sq_productos.NextVal, 'Aceite', 1200)
Insertinto productos values (
sq_productos.NextVal, 'Fideos', 450)
SECUENCIAS DECRECIENTES
Para crear una secuencia decremental el parámetro INCREMENT BY tendrá valor -1
y el parámetro START WITH coincidirá con el parámetro MAXVALUE:
CREATE SEQUENCE secuencia_decremental
INCREMENT BY -1
START WITH 100 MAXVALUE 100
Ejemplo
create table prueba_decremental (numero number, fecha date)
insert intoprueba_decremental values (secuencia_decremental.NextVal, sysdate)
Profesor: Juan Cubillos G.
Página 3 de 10
INSTITUTO PROFESIONAL DuocUC
ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES
TRIGGERS (Dispardores)
Permite implementar reglas de negocio
• Cada vez que el inventario de un producto cae bajo un cierto valor (stock crítico)
se genera una orden de compra en forma automática
Untrigger es un conjunto de instrucciones PL/SQL que se ejecutan en el momento
que una operación INSERT, UPDATE o DELETE de SQL es aplicada a una tabla
Acciones que se pueden hacer con Triggers:
• Cambiar el valor de una columna basado en el valor de otras columnas de la
misma u otra tabla.
• Validación de valores de las columnas (posiblemente comparando con valores de
otras tablas).
•Documentar los cambios que se realizan escribiendo sobre otra tabla
CARACTERISTICAS
•
No requieren intervención
automáticamente.
del
usuario,
es
decir
•
invocan
Se pueden usar para validación centralizada de datos.
•
se
Sirven para crear auditorias – quien hizo que y cuando.
SINTAXIS
CREATE [OR REPLACE] TRIGGER trigger-nombre
{BEFORE | AFTER} trigger-evento
ONnombre-tabla
[FOR EACH ROW][STATEMENT]
[WHEN (condición)]
DECLARE
------BEGIN
EXCEPTION
END;
Profesor: Juan Cubillos G.
Página 4 de 10
INSTITUTO PROFESIONAL DuocUC
ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES
trigger-nombre nombre del trigger a ser creado
trigger-evento puede ser INSERT, UPDATE, or DELETE
nombre-tabla nombre de la tabla con la cual el...
Regístrate para leer el documento completo.