Процедуры и функции в программировании
Процедуры и функции в программировании позволяют программистам группировать инструкции вместе в один блок, который можно вызывать из разных мест программы. Код становится более понятным и компактным. Выполнение модификаций в одном месте повлияет на весь код. С помощью функций и процедур; линейный и длинный код можно разделить на независимые участки. Они обеспечивают большую гибкость кодирования различных языков программирования и баз данных.
Что такое функции?
Функции могут принимать параметры, которые также называются аргументами. Они выполняют задачи в соответствии с этими аргументами или параметрами и возвращают значения заданных типов. Мы можем объяснить это лучше на примере: функция принимает строку в качестве параметра и возвращает первую запись или запись из базы данных. При этом учитывается содержимое определенного поля, которое начинается с таких символов.
Синтаксис функции следующий:
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ФУНКЦИЮ my_func
(p_name IN VARCHAR2:=‘Jack’) вернуть varchar2 как begin … end
Что такое процедуры?
Процедуры могут принимать параметры или аргументы и выполнять задачи в соответствии с этими параметрами. Если процедура принимает в качестве параметра строку и выдает список с записями в базе данных, для которых содержимое определенного поля начинается с таких символов.
Синтаксис процедур следующий:
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОЦЕДУРУ my_proc
(p_name IN VARCHAR2:=‘Джек’) as begin … end
В основном существует два способа передачи параметра в функции и процедуры; по значению или по ссылке. Если параметр передается значением; модификация затрагивается внутри функции или процедуры, не затрагивая ее фактическое значение.
С другой стороны, если параметры передаются по ссылкам; фактическое значение этого параметра будет изменено везде, где он вызывается в коде в соответствии с инструкциями.
Разница между процедурами и функциями
• Когда параметр передается в процедуру; она не возвращает никакого значения, тогда как функция всегда возвращает значение.
• Одно из основных отличий между ними заключается в том, что процедуры не используются в базах данных, тогда как функции играют важную роль в возвращении значений из базы данных.
• Процедуры могут возвращать несколько значений, а функции могут возвращать ограниченное количество значений.
• Операции DML можно использовать в хранимых процедурах; однако они невозможны в функциях.
• Функции могут возвращать только одно значение, и это обязательно, тогда как процедуры могут возвращать n или нулевое значение.
• В функциях обработка ошибок не может выполняться, тогда как она может выполняться в хранимых процедурах.
• Входные и выходные параметры можно передавать в процедурах, тогда как в случае функций; могут быть переданы только входные параметры.
• Функции можно вызывать из процедур, тогда как процедуру нельзя вызывать из функции.
• Управление транзакциями можно рассматривать в процедурах и нельзя рассматривать в случае функций.