За всеки, който някога е изучавал езици за програмиране като C, C++ или Java, концепцията за функциите не е нова. Функциите не са нищо друго освен група от изпълними оператори. С помощта на функции можете да се спасите от пренаписване на същата програмна логика отново и отново. И така, как можем да дефинираме функция в Oracle PL/SQL?
Какви са PL/SQL функциите в Oracle Database?
В Oracle Database можем да дефинираме PL/SQL функция като самостоятелна подпрограма, която е предназначена да изпълнява някаква специфична добре дефинирана задача. Функциите се наричат PL/SQL блок, което означава, че могат да се съхраняват в базата данни като обект на база данни и да се използват повторно. Това е и причината, поради която някои книги наричат PL/SQL функциите съхранени функции.
Типове PL/SQL функции в Oracle Database
Има два типа PL/SQL функции в Oracle Database, това са
- Функции за предаване по стойност и
- Функции за предаване по справка
В Oracle Database и двата типа функции трябва да връщат някои стойности и тези стойности трябва да са валиден SQL или PL/SQL тип данни.
Синтаксис на PL/SQL функции в Oracle Database
CREATE [OR REPLACE] FUNCTION function_name (Parameter 1, Parameter 2…) RETURN datatype IS Declare variable, constant etc. BEGIN Executable Statements Return (Return Value); END;
Обсъдих ред по ред синтаксиса на функцията PL/SQL във видеоурока на моя YouTube канал по същата тема. Предлагам ви да отидете и да разгледате този урок веднъж.
Метод за изпълнение на функция
В зависимост от вашата креативност и умения за програмиране, PL/SQL функция може да бъде извикана по няколко начина. Ето някои общи начини за извикване на PL/SQL функция в Oracle Database
- Можете да използвате помощната програма SQL*Plus на Oracle Database, за да извикате PL/SQL функция, която може да бъде извикана от PL/SQL като процедурен израз.
- Анонимен PL/SQL блок може да се използва и за извикване на функция.
- Можете дори да извикате функция директно в оператор SELECT или DML.
Останете на линия, ще обсъдим всеки от тези методи за изпълнение на PL/SQL функции в следващия урок.
Ограничения за извикване на функция
- Функция, която връща SQL тип данни, може да се използва в SQL израз, а PL/SQL функция, която връща PL/SQL тип данни, работи само в PL/SQL блокове. Изключение от това правило е, че не можете да извикате функция, която съдържа DML операция в SQL заявка. Можете обаче да извикате функция, която изпълнява DML операция вътре в INSERT, UPDATE и DELETE.
- Функция, извикана от оператор UPDATE или DELETE в таблица, не може да прави заявки (SELECT) или да извършва транзакции (DML) на същата таблица.
- Функция, извикана от SQL изрази, не може да съдържа командата TCL (COMMIT или ROLLBACK) или командата DDL (CREATE или ALTER)
Това е всичко за този урок за Въведение в PL/SQL функциите в Oracle Database. Не забравяйте да разгледате следващия урок, където демонстрирам създаването на PL/SQL функция с помощта на много прост пример.
Също така не забравяйте да споделите този блог във вашите социални медии, тъй като всеки месец раздавам стоките на RebellionRider на един от произволно избраните победители. За допълнителни актуализации ме последвайте в моя Facebook и Twitter.
Благодаря за четенето и приятен ден!