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ón
drop 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;