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