Os pacotes oferecem as seguintes vantagens:
- Coesão:todos os procedimentos e funções relativos a um subsistema específico estão em uma unidade de programa. Esta é apenas uma boa prática de design, mas também é mais fácil de gerenciar, por exemplo, no controle de origem.
- Constantes, subtipos e outras coisas úteis:há mais em PL/SQL do que procedimentos armazenados. Qualquer coisa que possamos definir em uma especificação de pacote pode ser compartilhada com outros programas, por exemplo, exceções definidas pelo usuário.
- Sobrecarga:a capacidade de definir um procedimento ou função com o mesmo nome, mas com assinaturas diferentes.
- Segurança:definição de procedimentos privados no corpo do pacote que só podem ser usados pelo pacote porque não estão expostos na especificação.
- Compartilhamento de código comum:outro benefício dos procedimentos privados.
- Só precisamos conceder EXECUTE em um pacote em vez de em vários procedimentos.