86 - Vistas (with read only) |
Una empresa almacena la información de sus clientes en una tabla llamada "clientes".
1- Elimine la tabla:
drop table clientes cascade constraints;
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
5- Cree o reemplace la vista "vista_clientes2" para que recupere el nombre y ciudad de todos los clientes no permita modificaciones.
6- Consulte ambas vistas
7- Intente ingresar el siguiente registro mediante la vista que permite sólo lectura
Oracle no lo permite.
8- Ingrese el registro anterior en la vista "vista_clientes"
9- Intente modificar un registro mediante la vista que permite sólo lectura
10- Actualice el registro anterior en la vista "vista_clientes"
11- Intente eliminar un registro mediante la vista "vista_clientes2"
12- Elimine todos los clientes de "Buenos Aires" a través de la vista "vista_clientes"
Ver solucióndrop table clientes cascade constraints; 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; create or replace view vista_clientes2 as select nombre, ciudad from clientes with read only; select *from vista_clientes; select *from vista_clientes2; insert into vista_clientes2 values ('Ana Acosta','Salta'); insert into vista_clientes values ('Ana Acosta','Salta'); update vista_clientes2 set ciudad='Salta' where nombre='Juan Perez'; update vista_clientes set ciudad='Salta' where nombre='Juan Perez'; delete from vista_clientes2 where ciudad='Buenos Aires'; delete from vista_clientes where ciudad='Buenos Aires';