88 - Vistas (with check option) |
Una empresa almacena la información de sus clientes en una tabla llamada "clientes".
1- Elimine la tabla:
drop table clientes;
2- Cree la tabla:
create table clientes( nombre varchar2(40), documento char(8), domicilio varchar2(30), ciudad varchar2(30) );
3- Ingrese algunos registros:
insert into clientes values('Juan Perez','22222222','Colon 1123','Cordoba'); insert into clientes values('Karina Lopez','23333333','San Martin 254','Cordoba'); insert into clientes values('Luis Garcia','24444444','Caseros 345','Cordoba'); insert into clientes values('Marcos Gonzalez','25555555','Sucre 458','Santa Fe'); insert into clientes values('Nora Torres','26666666','Bulnes 567','Santa Fe'); insert into clientes values('Oscar Luque','27777777','San Martin 786','Santa Fe'); insert into clientes values('Pedro Perez','28888888','Colon 234','Buenos Aires'); insert into clientes values('Rosa Rodriguez','29999999','Avellaneda 23','Buenos Aires');
4- Cree o reemplace la vista "vista_clientes" para que recupere el nombre y ciudad de todos los clientes que no sean de "Cordoba" sin emplear "with check option"
5- Cree o reemplace la vista "vista_clientes2" para que recupere el nombre y ciudad de todos los clientes que no sean de "Cordoba" empleando "with check option"
6- Consulte ambas vistas
7- Intente modificar la ciudad del cliente "Pedro Perez" a "Cordoba" través de la vista que está restringida.
8- Realice la misma modificación que intentó en el punto anterior a través de la vista que no está restringida
9- Actualice la ciudad del cliente "Oscar Luque" a "Buenos Aires" mediante la vista restringida
10- Verifique que "Oscar Luque" aún se incluye en la vista
11- Intente ingresar un empleado de "Cordoba" en la vista restringida
12- Ingrese el empleado anterior a través de la vista no restringida
13- Ingrese un empleado de "Salta" en la vista restringida
14- Verifique que el nuevo registro está incluido en la vista
Ver solucióndrop table clientes; create table clientes( nombre varchar2(40), documento char(8), domicilio varchar2(30), ciudad varchar2(30) ); insert into clientes values('Juan Perez','22222222','Colon 1123','Cordoba'); insert into clientes values('Karina Lopez','23333333','San Martin 254','Cordoba'); insert into clientes values('Luis Garcia','24444444','Caseros 345','Cordoba'); insert into clientes values('Marcos Gonzalez','25555555','Sucre 458','Santa Fe'); insert into clientes values('Nora Torres','26666666','Bulnes 567','Santa Fe'); insert into clientes values('Oscar Luque','27777777','San Martin 786','Santa Fe'); insert into clientes values('Pedro Perez','28888888','Colon 234','Buenos Aires'); insert into clientes values('Rosa Rodriguez','29999999','Avellaneda 23','Buenos Aires'); create or replace view vista_clientes as select nombre, ciudad from clientes where ciudad <>'Cordoba'; create or replace view vista_clientes2 as select nombre, ciudad from clientes where ciudad <>'Cordoba' with check option; select *from vista_clientes; select *from vista_clientes2; update vista_clientes2 set ciudad='Cordoba' where nombre='Pedro Perez'; update vista_clientes set ciudad='Cordoba' where nombre='Pedro Perez'; update vista_clientes2 set ciudad='Buenos Aires' where nombre='Oscar Luque'; select *from vista_clientes2; insert into vista_clientes2 values('Viviana Valdez','Cordoba'); insert into vista_clientes values('Viviana Valdez','Cordoba'); insert into vista_clientes2 values('Viviana Valdez','Salta'); select *from vista_clientes2;