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
Publicar un comentario