Listado completo de tutoriales
87 - Vistas modificar (create or replace view) |
Para modificar una vista puede eliminarla y volver a crearla o emplear "create or replace".
Sintaxis:
create or replace view NOMBREVISTA as SUBCONSULTA;
Con "create or replace view" se modifica la definición de una vista existente o se crea si no existe.
drop table empleados; drop table secciones; create table secciones( codigo number(2), nombre varchar2(20), constraint PK_secciones primary key (codigo) ); create table empleados( documento char(8), nombre varchar2(30), domicilio varchar2(30), seccion number(2) not null, constraint FK_empleados_seccion foreign key (seccion) references secciones(codigo), constraint PK_empleados primary key (documento) ); insert into secciones values(1,'Administracion'); insert into secciones values(2,'Contaduría'); insert into secciones values(3,'Sistemas'); insert into empleados values('22222222','Lopez Ana','Colon 123',1); insert into empleados values('23333333','Lopez Luis','Sucre 235',1); insert into empleados values('24444444','Garcia Marcos','Sarmiento 1234',2); insert into empleados values('25555555','Gomez Pablo','Bulnes 321',3); insert into empleados values('26666666','Perez Laura','Peru 1254',3); -- Eliminamos la vista "vista_empleados": drop view vista_empleados; -- Creamos la vista "vista_empleados" que muestre algunos campos de los empleados de la sección 1: create view vista_empleados as select documento,nombre,seccion from empleados where seccion=1; -- Consultamos la vista: select *from vista_empleados; -- Veamos el texto de la vista consultando "user_views": select view_name,text from user_views where view_name='VISTA_EMPLEADOS'; -- Modificamos la vista para que muestre el domicilio: create or replace view vista_empleados as select documento,nombre,seccion, domicilio from empleados where seccion=1; -- Consultamos la vista para ver si se modificó: select *from vista_empleados; -- Aparece el nuevo campo. -- Veamos el texto de la vista consultando "user_views": select view_name,text from user_views where view_name='VISTA_EMPLEADOS';
La ejecución de este lote de comandos SQL genera una salida similar a: