Disparadores

Páginas: 5 (1202 palabras) Publicado: 17 de abril de 2012
Disparadores en Oracle (Ejemplos Prácticos)

URJC –Diciembre 2005

Asignatura: Base de Datos
Titulación: Ingeniería Informática
Curso: 4º

Disparadores en Oracle
(Ejemplos Prácticos)
Nota: Recuerde guardar los scripts, utilice para ello un editor de texto.

Triggers DML
1 . Cree las siguientes tablas con la siguiente estructura:
Autores = {
ID:
Nombre:
Apellidos:
}

numérico(PK)
carácter (50)
carácter (50)

Libros = {
ISBN:
Género:
Título:
Páginas:
Precio:
Copyright:
Autor1:
Autor2:
Autor3:
}

carácter (10) (PK)
carácter (20)
carácter (100)
numérico
numérico
numérico (4)
numérico (FK autores)
numérico (FK autores)
numérico (FK autores)

Estadisticas = {
Genero:
carácter (20)
Total_Libros: numérico
Precio_Medio: numérico
}

2 . Estudieel código del siguiente disparador.
Trate de expresar con palabras cuál es el resultado esperado de su ejecución.
CREATE OR REPLACE TRIGGER ActualizarEstadisticas
AFTER INSERT OR DELETE OR UPDATE ON libros
DECLARE
CURSOR c_Estadisticas IS
SELECT genero,
COUNT(*) total_libros,
AVG(precio) precio_medio
FROM libros

Grupo de Investigación Kybele

Disparadores en Oracle (EjemplosPrácticos)

URJC –Diciembre 2005

GROUP BY genero;
v_genero estadisticas.genero%TYPE;
v_total_libros estadisticas.total_libros%TYPE;
v_precio_medio estadisticas.precio_medio%TYPE;
BEGIN
DELETE FROM estadisticas;
OPEN c_Estadisticas;
LOOP
FETCH c_Estadisticas INTO v_genero, v_total_libros, v_precio_medio;
EXIT WHEN c_Estadisticas%NOTFOUND;
INSERT INTO estadisticas (genero, total_libros,precio_medio)
VALUES (v_genero, v_total_libros, v_precio_medio);
END LOOP;
CLOSE c_Estadisticas;
END ActualizarEstadisticas;
/
CREATE OR REPLACE TRIGGER ActualizarEstadisticas_FOR
AFTER INSERT OR DELETE OR UPDATE ON libros
DECLARE
CURSOR c_Estadisticas IS
SELECT genero,
COUNT(*) total_libros,
AVG(precio) precio_medio
FROM libros
GROUP BY genero;
BEGIN
DELETE FROM estadisticas;
FORv_RegistroEstadisticas in c_Estadisticas LOOP
INSERT INTO estadisticas (genero, total_libros, precio_medio)
VALUES (v_RegistroEstadisticas.genero, v_RegistroEstadisticas.total_libros,
v_RegistroEstadisticas.precio_medio);
END LOOP;
END ActualizarEstadisticas_FOR;
/
3 . Para comprobar el funcionamiento del disparador:
a) Consulte la totalidad de las 3 tablas creadas
b) Inserte los datos devarios autores y a continuación utilice los datos de
dichos autores para insertar datos en la tabla Libros.
AUTORES
ID

NOMBRE

APELLIDOS

1
2

Marlene
Rachel

Thierault
Charmichael

Grupo de Investigación Kybele

Disparadores en Oracle (Ejemplos Prácticos)
3
4
5
6
7
8
9
10
11
15
16
17
18
19
20

James
Michael
Michael
Gaja
Kirtikumar
John
Ian
Kenny
StephanDavid
Graham
Simon
Bastin
Nigel
Dan

URJC –Diciembre 2005

Viscusi
Abbey
Corey
Vaidyanatha
Deshpande
Kostelac
Abramson
Smith
Haisley
James
Seibert
Russell
Gerald
King
Natchek

LIBROS
ISBN

GÉNERO

TÍTULO

PÁGS.



©

A1

A2

72122048

Oracle
Basics
Oracle
Basics
Oracle
Basics
Oracle
Basics
Oracle
Ebusiness

Oracle8i: A Beginner''s Guide765

44.99

1999

4

5

Oracle Performance Tuning
101
Oracle9i: A Beginner''s Guide

404

39.99

2001

6

7

8

535

39.99

2002

4

5

9

Oracle Backup & Recovery
101
Oracle E-Business Suite
Manufacturing & Supply
Chain Management
Oracle E-Business Suite
Financials Handbook
Oracle9i Application Server
Portal Handbook

487

39.99

2002

1011

823

69.99

2002

18

19

20

820

59.99

2002

15

16

17

544

45.99

2002

4

8

15

72131454
72192798
72194618
72133791
72132302
72222492

Oracle
Ebusiness
Oracle
Ebusiness

A3

c) Repita la consulta de las 3 tablas y compruebe el efecto de la ejecución
del disparador
d) Elimine de la tabla libros 2 de los libros del género Oracle...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Disparos
  • disparo
  • disparadores
  • Diagrama de disparo
  • Disparo Mosfets
  • Disparidades Regionales
  • Disparidades Regionales
  • Circuito de disparo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS