Подпрограмма – это именованная программа PL/SQL, которая может использовать параметры и вызываться приложением. Скомпилированный двоичный код логических схем приложения можно хранить в базе данных ORACLE при помощи хранимых подпрограмм. В базе данных ORACLE можно хранить в качестве объектов схем подпрограммы двух типов: хранимые процедуры и хранимые функции. Хранимые процедуры и функции в отличие от анонимных блоков сохраняются в базе данных и наряду с таблицами, представлениями и др. являются самостоятельными объектами баз данных ORACLE. Процедуры и функции сохраняются в базе данных в откомпилированном виде, и при их вызове загружаются в разделяемый пул (pool – системная область памяти СУБД), откуда удаляются по мере его заполнения в порядке частоты использования кода процедуры или функции. Наиболее редко используемый код, разумеется, удаляется раньше, и при очередном вызове данный код снова загружается в пул с диска. Такая организация способствует производительности выполнения вызываемых процедур и функций, поскольку исключает постоянную загрузку с диска, исполняемого кода. Хранимая функция отличается от процедуры тем, что функция в отличие от процедуры возвращает значения в вызывающую среду.
Для создания в базе данных ORACLE хранимой процедуры или функции применяется команда CREATE PROCEDURE или CREATE FUNCTION.