Oracle. Почему я должен использовать пакеты вместо автономных процедур или функций

Я искал google, но не нашел удовлетворительного ответа о том, почему я должен использовать пакеты.

Я знаю, что пакет представляет собой набор процедур, функций и разных переменных. Насколько я понимаю, это похоже на объект в ООП. Но, конечно, нет ничего похожего на создание экземпляров разных экземпляров пакета, чтобы каждый экземпляр имел разные значения свойств и вел себя по-другому.

Тогда в чем преимущество использования пакетов, когда я могу просто создать отдельную процедуру и вызвать ее самостоятельно?

Ответ 1

Пакеты обеспечивают следующие преимущества:

  • Сплоченность: все процедуры и функции, относящиеся к определенной подсистеме, находятся в одном программном модуле. Это просто хорошая практика проектирования, но также легче управлять, например. в управлении источниками.
  • Константы, подтипы и другие полезные вещи: там больше PL/SQL, чем хранимые процедуры. Все, что мы можем определить в спецификации пакета, можно разделить с другими программами, например пользовательскими исключениями.
  • Перегрузка: возможность определять процедуру или функцию с тем же именем, но с разными сигнатурами.
  • Безопасность: определение частных процедур в корпусе пакета, которые могут использоваться только пакетом, поскольку они не отображаются в спецификации.
  • Обмен общим кодом: другое преимущество частных процедур.
  • Нам нужно только предоставить EXECUTE на пакете, а не на нескольких процедурах.

Ответ 2

Как описано в документах Oracle, пакеты хороши из-за:

  • Модульность
  • упрощенная конструкция приложения
  • скрытие информации
  • добавленная функциональность
  • лучшая производительность

Подробности по каждой причине объясняются в документах.