Ir al contenido principal

CREATE VIEW, ALTER VIEW Y DROP VIEW

La sintaxis es la siguiente:

CREATE [OR REPLACE] [FORCE | NO FORCE]  VIEW
[esquema.]nombrevista [(alias) [,alias]…)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraintname]]
[WITH READ ONLY [CONSTRAINT constraintname]] ;


Tenga en cuenta que las vistas son objetos de esquema. Las palabras claves opcionales son:

OR REPLACE. Si la vista ya existe. Primero será eliminada y luego será creada.
FORCE o NOFORCE. La palabra clave FORCE creara la vista incluso si la tabla detalle en el subquery no existe. NOFORCE es el comportamiento por defecto. Causara error si el detalle no existe.
WITH CHECK OPTION. Esto tiene que ver con DML. Si la subconsulta contiene una clausula WHERE, esta opción evitará la inserción de filas que no se pueden ver en la vista o cambios que harían que una fila de desaparece de la vista. De forma predeterminada, esta opción no está habilitada, lo que puede dar resultados desconcertantes.
WITH READ ONLY. Previene cualquier DML a través de la vista.
CONSTRAINT constraintname. Esto puede ser usado para nombrar las restricciones WITH CHECK OPTION y WITH READ ONLY para que los mensajes de error cuando las restricciones causan fallos, sean más comprensible.

Además, un conjunto de nombres de alias puede ser proporcionar por los nombres de las columnas de la vista. Si no se proporciona, las columnas se nombran después de las columnas de la tabla o alias especificados en la subconsulta

Ejemplos:

create view v1region as select * from regions where id=1
Esta Vista permite la inserción de filas que no pueden verse en la vista.

create view v1region as select * from regions where id=1 with check option;
Esta vista no permite insertar filas que no se vean en la vista.

El uso principal del comando ALTER VIEW es para compilar la vista. Una vista debe ser compilada exitosamente antes que pueda ser utilizada. Cuando una vista es creada, Oracle comprueba que las tablas detalle y las columnas necesarias sobre la cual la vista está basada exista. Si estas no existen, la compilación falla y la vista no será creada. A menos que se utilice la opción FORCE. En este caso, la vista será creada pero no será usable hasta que la tabla o columnas a la cual se refiere sean creadas y la vista sea compilada exitosamente. Cuando una vista inválida es consultada, Oracle intenta compilarla automáticamente. Si la compilación es exitosa porque el problema se ha solucionada, incluso si el usuario no conoce el problema. Excepto si la consulta tome un poco más de tiempo. En términos generales, se debe compilar manualmente la vista y que compile con éxito. Y no dejar que los usuarios descubran los errores.
No es posible ajustar las definiciones de columnas de una vista después de la creación en una Tabla la forma en que las columnas de una tabla se pueden cambiar. La vista debe quitarse y volver a crear. El comando DROP es el siguiente:

DROP VIEW [esquema.]viewname;


Mediante la palabra OR REPLACE con el comando CREATE VIEW, la vista será automáticamente eliminada y posteriormente creada.

Comentarios