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