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