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.

Ingresemos el siguiente lote de comandos en el Oracle SQL Developer:

 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:

SQL Developer create or replace view


Retornar