domingo, 27 de março de 2022

Criando e Mantendo uma View


 Uma view é uma fotografia da resposta de uma consulta específica, ela é consultada através do comando Select, semelhante a uma tabela comum, porém não possui conteúdo, somente estrutura, e só existe durante a sessão que a chamou, sendo desfeita logo em seguida ao encerramento da mesma.

Uma view pode ser utilizada em união a um comando DML (Linguagem de Manipulação de Dados – Update, Delete, Insert) porém com restrições de utilização.

A utilização de uma view pode conter cálculos, funções, colunas formatadas ou calculadas dinamicamente. A grande vantagem da view é que ela é única e pode ser utilizada em qualquer parte da aplicação sem a necessidade de ser reescrita ou a possibilidade de erro de formulação. A definição da view fica armazenada no Dicionário de Dados.

É sempre aconselhável que seja realizado o comando select antes da criação da view, isso garante que o resultado será o esperado. Principalmente se a veiw servir como intermediária de comandos DML.

Criar uma view é extremamente simples, após a validação da consulta (Select), basta usar o comando de criação e o nome do objeto em questão, não é recomendado que este se inicie dom DBA_, V$ ou ALL_, pois são objetos do sistema, as permissões de Create View e Create Any View devem ser atribuías ao proprietário da View, o proprietário da View deverá ter permissão de consulta nas tabelas envolvidas:

Create View <Nome da View> As <Select ...>;

Se o objetivo for alterar a View, a permissão Alter View deve ser atribuída ao usuário, então utilizamos a opção de alteração:

Create or Relpace <Nome da View> As <Novo Select ...>;

Para consultarmos o resultado da View, faremos semelhante à consulta de uma tabela:

Select <Nome da View>

Where Condições

Group By Opções de agrupamento

Having Condições de agrupamento

Order By Condições de ordenação;

Se desejarmos remover uma View do Dicionário de Dados, a permissão Drop View deve ser atribuída ao usuário, usamos o comando de remoção, nenhum efeito terá sobre as tabelas referenciadas:

Drop View <Nome da View>;

Se formos utilizar a View como intermediária de um comando DML, então usaremos a opção With Check Option, também devemos ter certeza de que os dados manipulados podem ser visualizados, também devemos ter certeza de que não estamos desprezando colunas nulas, pois isso invalidaria a funcionalidade da View.

Create or Replace View <Nome da View> As <Select …> With Check Option;

Se desejarmos que a View não sirva de intermediária de comandos DML, usaremos a opção With Read Only, isso restringirá a View a apenas consulta. Qualquer tentativa de utilização de comandos DML nesta view ocasionará um erro.

Create or Replace View <Nome da View> As <Select …> With Read Only;

As Views são armazenadas no Dicionário de Dados, para sua verificação, basta utilizar o comento Describe;

Desc <Nome da View>