Instru????o CREATE VIEW

As vis??es s??o tabelas virtuais formadas por uma consulta. A vis??o ?? um objeto do dicion??rio que pode ser utilizado, at?? ser removido.

As vis??es n??o s??o atualiz??veis.

Se for especificado um nome de vis??o qualificado, o nome do esquema n??o poder?? come??ar por SYS.

Sintaxe

CREATE VIEW nome-da-vis??o
    [ ( nome-de-coluna-simples [, nome-de-coluna-simples] * ) ]
AS Consulta 

A defini????o da vis??o pode conter uma lista de colunas da vis??o, opcional, para atribuir nomes expl??citos ??s colunas da vis??o. Se n??o houver uma lista de colunas, a vis??o herdar?? os nomes de coluna da consulta subjacente. Todas as colunas da vis??o devem possuir nomes ??nicos.

CREATE VIEW SAMP.V1 (COL_SUM, COL_DIFF)
        AS SELECT COMISS + B??NUS, COMISS - B??NUS
        FROM SAMP.EMPREGADOS;

CREATE VIEW SAMP.V_EMP_CURR (CURRICULUM)
        AS VALUES 'Delores M. Quintana', 'Heather A. Nicholls', 'Bruce Adamson';

CREATE VIEW SAMP.PROJ_COMBO
        (NUM_PROJ, PROJ_DATA_FIM, PROJ_EQUIPE, PROJ_CHEFE)
        AS SELECT NUM_PROJ, PROJ_DATA_FIM, PROJ_EQUIPE, PROJ_CHEFE
        FROM SAMP.PROJETO
        UNION ALL
        SELECT NUM_PROJ, EMSTDATE, EMPTIME, NUM_EMP
        FROM SAMP.ATIV_EMP
        WHERE NUM_EMP IS NOT NULL;

Sistema de depend??ncia de instru????o

As defini????es das vis??es s??o dependentes das tabelas e vis??es referenciadas na defini????o da vis??o. As instru????es de DML (linguagem de manipula????o de dados) que cont??m refer??ncia a vis??es dependem destas vis??es, assim como dos objetos nas defini????es das vis??es dos quais as vis??es dependem. As instru????es que fazem refer??ncia ?? vis??o dependem dos ??ndices que as vis??es utilizam; o ??ndice utilizado pela vis??o pode mudar de uma instru????o para outra, baseado em como a consulta ?? otimizada. Por exemplo, dado:
CREATE TABLE T1 (C1 DOUBLE PRECISION);

CREATE FUNCTION SIN (DATA DOUBLE)
        RETURNS DOUBLE EXTERNAL NAME 'java.lang.Math.sin'
        LANGUAGE JAVA PARAMETER STYLE JAVA;

CREATE VIEW V1 (C1) AS SELECT SIN(C1) FROM T1;
ent??o a instru????o a seguir:
SELECT * FROM V1

?? dependente da vis??o V1, da tabela T1, e da fun????o escalar externa SIN.

Refer??ncias relacionadas
Instru????o CREATE FUNCTION
Instru????o CREATE INDEX
Instru????o CREATE PROCEDURE
Instru????o CREATE SCHEMA
Instru????o CREATE SYNONYM
Instru????o CREATE TABLE
Instru????o CREATE TRIGGER