Diferença entre visualização e procedimento armazenado

Índice:

Diferença entre visualização e procedimento armazenado
Diferença entre visualização e procedimento armazenado

Vídeo: Diferença entre visualização e procedimento armazenado

Vídeo: Diferença entre visualização e procedimento armazenado
Vídeo: Aula 35 - Curva Tensão x Deformação de Engenharia 2024, Novembro
Anonim

Visualizar vs Procedimento Armazenado

Views e stored procedures são dois tipos de objetos de banco de dados. As visualizações são consultas armazenadas, que coletam dados de uma ou mais tabelas. Aqui está a sintaxe para criar uma view

criar ou substituir viewname

como

select_statement;

Um procedimento armazenado é um conjunto de comandos SQL pré-compilado, que é armazenado no servidor de banco de dados. Cada procedimento armazenado tem um nome de chamada, que é usado para chamá-los dentro de outros pacotes, procedimentos e funções. Esta é a sintaxe (no ORACLE) para criar um procedimento armazenado, criar ou substituir procedimento procedurename (parâmetros)

é

começo

instruções;

exceção

manuseio_exceção

end;

Visualizar

A View atua como uma tabela virtual. Ele oculta uma instrução select dentro de seu corpo. Essa instrução select pode ser muito complexa, que recebe dados de várias tabelas e visualizações. Portanto, em outras palavras, uma visão é uma instrução select nomeada, que é armazenada no banco de dados. Uma visualização pode ser usada para ocultar a lógica por trás das relações de tabela dos usuários finais. Como uma visualização é resultado de uma consulta armazenada, ela não mantém nenhum dado. Ele reúne dados das tabelas base e mostra. As visualizações também desempenham um papel importante na segurança dos dados. Quando o proprietário da tabela precisa mostrar apenas um conjunto de dados para os usuários finais, criar uma visualização é uma boa solução. As visualizações podem ser divididas em duas categorias

  • Visualizações atualizáveis (Visualizações que podem ser usadas para INSERT, UPDATE e DELETE)
  • Visualizações não atualizáveis (Visualizações que não podem ser usadas para INSERT, UPDATE e DELETE)

As visualizações atualizáveis não podem incluir seguidores, Operadores de conjunto (INTERSECT, MINUS, UNION, UNION ALL)

DISTINCT

Funções Agregadas de Grupo (AVG, COUNT, MAX, MIN, SUM, etc.)

GROUP BY Cláusula

ORDER BY Cláusula

CONNECT BY Cláusula

START WITH Clause

Expressão de coleção em uma lista de seleção

Sub consulta em uma lista de seleção

Join Query

Procedimento Armazenado

Os procedimentos armazenados são denominados blocos de programação. Eles devem ter um nome para chamar. Os procedimentos armazenados aceitam parâmetros como entrada do usuário e processam de acordo com a lógica por trás do procedimento e fornecem o resultado (ou executam uma ação específica). Declarações de variáveis, atribuições de variáveis, instruções de controle, loops, consultas SQL e outras funções/procedimentos/chamadas de pacotes podem estar dentro do corpo dos procedimentos.

Qual é a diferença entre View e Stored Procedure?

Vamos ver as diferenças entre esses dois.

• As visualizações funcionam como tabelas virtuais. Eles podem ser usados diretamente no fechamento das consultas SQL (selecionar), mas os procedimentos não podem ser usados no fechamento das consultas.

• As visualizações têm apenas uma instrução select como seu corpo, mas os procedimentos podem ter declarações de variáveis, atribuições de variáveis, instruções de controle, loops, consultas SQL e outras chamadas de funções/procedimentos/pacotes como seu corpo.

• O procedimento aceita parâmetros para execução, mas as visualizações não querem que os parâmetros sejam executados.

• Os tipos de registro podem ser criados a partir de visualizações usando % ROWTYPE, mas usando procedimentos, os tipos de registro não podem ser criados.

• As dicas de SQL podem ser usadas dentro da instrução view select, para otimizar o plano de execução, mas as dicas de SQL não podem ser usadas em procedimentos armazenados.

• DELETE, INSERT, UPDATE, SELECT, FLASHBACK e DEBUG podem ser concedidos em visualizações, mas apenas EXECUTE e DEBUG podem ser concedidos em procedimentos.

Recomendado: