I pacchetti offrono i seguenti vantaggi:
- Coesione:tutte le procedure e le funzioni relative ad uno specifico sottosistema sono in un'unica unità di programma. Questa è solo una buona pratica di progettazione ma è anche più facile da gestire, ad es. nel controllo del codice sorgente.
- Costanti, sottotipi e altre cose utili:c'è di più in PL/SQL rispetto alle stored procedure. Tutto ciò che possiamo definire nelle specifiche di un pacchetto può essere condiviso con altri programmi, ad esempio eccezioni definite dall'utente.
- Sovraccarico:la possibilità di definire una procedura o una funzione con lo stesso nome ma firme diverse.
- Sicurezza:definizione di procedure private nel corpo del pacchetto che possono essere utilizzate solo dal pacchetto perché non sono esposte nella specifica.
- Condivisione del codice comune:un altro vantaggio delle procedure private.
- Dobbiamo concedere EXECUTE solo su un pacchetto piuttosto che su diverse procedure.