Procurando uma resposta canônica para a pergunta sobre por que os pacotes devem ser preferidos em um banco de dados Oracle em vez de procedimentos e funções independentes.
Procurando uma resposta canônica para a pergunta sobre por que os pacotes devem ser preferidos em um banco de dados Oracle em vez de procedimentos e funções independentes.
Respostas:
Benefícios dos Pacotes
Agrupamento lógico - Os métodos que trabalham juntos podem ser colocados em uma unidade coesa, em vez de apenas acoplados logicamente, mas fisicamente separados.
Métodos privados seguros - Funções e procedimentos podem ser tornados privados para o pacote e somente ser usados nele. Isso torna a superfície pública mais simples e mais segura.
Gerenciamento de privilégios - As permissões podem ser concedidas uma vez para um grupo de procedimentos que trabalham juntos, em vez de separadamente, para cada procedimento / função necessária.
Invólucro seguro - Pacotes embrulhados são mais difíceis de desembrulhar do que funções / procedimentos embrulhados.
Nomenclatura simplificada - Um espaço para nome maior permite nomes mais simples e que podem ser reutilizados em outros pacotes.
Melhor desempenho - Os pacotes podem ser compilados e carregados na memória por inteiro, em vez de fragmentados como outros métodos. Esse benefício, se existir, é mínimo comparado aos outros benefícios.
Invalidação reduzida - A alteração do corpo de um pacote não invalida dependências, como a alteração de uma função ou procedimento.
Recursos exclusivos - Variáveis do pacote, constantes do pacote, inicialização, estado da sessão, comentários do pacote e métodos sobrecarregados.
Referências:
11.2 Guia de conceitos Faça uma
pergunta a Tom
StackOverflow.com Pergunta sobre o desempenho do pacote
Desempacotando a apresentação PL / SQL (pdf)