Uma View funciona de forma semelhante a uma tabela. É utilizada em comandos SELECT, INSERT, UPDATE e DELETE, para recuperação e manipulação de dados (com restrições), porém, não armazena esses dados.

Este objeto tem suas linhas e colunas calculadas dinamicamente através de um SELECT pré-estabelecido, cada vez que solicitamos. Apenas a sua definição é armazenada no dicionário de dados.

Podemos dizer que se trata de uma tabela virtual, pois não possui linhas próprias, mas sim as obtém em tempo de execução e as disponibiliza em memória para acesso por uma query.

Como criar Views

Create [or replace] view  as  
[with read only];

Exemplo: Criando e visualizando as informações de uma view:

Create view estoque as select codprod, descricao from produtos 
where pmedio < 1000;

Alterando uma View

O comando REPLACE recria uma view já existente. Deve ser utilizado para alterar uma visão existente sem necessidade de apagá-la. É utilizado também para atribuir nova permissão e privilégios.

Create or replace view estoque as select codprod, descricao, pvenda preço
from produtos where pmedio < 1000;

Visualizando uma View

Select * from estoque;
Desc estoque;

Excluindo uma View

O comando DROP VIEW exclui uma view do dicionário de dados. Nenhum efeito ocorrerá sobre as tabelas referenciadas, bastando para isso ter apenas o privilégio DROP VIEW ou DBA.

Drop view estoque;

A Cláusula WITH CHECK OPTION

Através da cláusula WITH CHECK OPTION, podemos garantir que os dados inseridos ou atualizados numa tabela através de uma view, poderão ser visualizados através da própria view com esta opção.

Exemplo:

Create or replace view estoque as select codprod, descricao, pvenda preço
from produtos where pmedio < 1000 with check option estoque;

A Cláusula WITH READ ONLY

Através da cláusula WITH READ ONLY podemos impedir operações de DML sobre a view, restringindo desta forma a view apenas à leitura. A cláusula WITH READ ONLY indica que apenas a operação de consulta (SELECT) será permitida na view e, desse modo, operações de atualização, inserção e exclusão não serão permitidas.

Exemplo:

Create or replace view estoque as select codprod, descricao, pvenda preço
from produtos where pmedio < 1000 with read only;

A view está protegida para operações DML, portanto em qualquer tentativa de comandos referentes a DML (inserção, atualização e deleção) ocorrerão erros.

Checando as Views no Dicionário de Dados

O Dicionário de Dados do Oracle nos permite checar as views criadas, bastando para isso usar o comando:

Desc User_Views;