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