Procedury a funkcje w programowaniu
Procedury i funkcje w programowaniu umożliwiają programistom grupowanie instrukcji w jeden blok i można je wywoływać z różnych miejsc w programie. Kod staje się łatwiejszy do zrozumienia i bardziej zwarty. Dokonując modyfikacji w jednym miejscu, wpłynie to na cały kod. Za pomocą funkcji i procedur; kod liniowy i długi można podzielić na niezależne sekcje. Zapewniają większą elastyczność kodowania różnych języków programowania i baz danych.
Co to są funkcje?
Funkcje mogą akceptować parametry, które są również znane jako argumenty. Wykonują zadania zgodnie z tymi argumentami lub parametrami i zwracają wartości danych typów. Możemy to lepiej wyjaśnić na przykładzie: funkcja przyjmuje ciąg znaków jako parametr i zwraca pierwszy wpis lub rekord z bazy danych. Bierze pod uwagę zawartość konkretnego pola, która zaczyna się od takich znaków.
Składnia funkcji jest następująca:
UTWÓRZ LUB ZAMIEŃ FUNKCJĘ my_func
(p_name IN VARCHAR2:=‘Jack’) return varchar2 as begin … end
Czym są procedury?
Procedury mogą akceptować parametry lub argumenty i wykonują zadania zgodnie z tymi parametrami. Jeśli procedura akceptuje ciąg znaków jako parametr i podaje listę rekordów w bazie danych, dla których zawartość określonego pola zaczyna się od takich znaków.
Składnia procedur jest następująca:
PROCEDURA UTWÓRZ LUB ZAMIEŃ my_proc
(p_name IN VARCHAR2:=‘Jack’) as begin … end
Głównie istnieją dwa sposoby przekazywania parametru w funkcjach i procedurach; według wartości lub przez odniesienie. Jeśli parametr jest przekazywany przez wartość; modyfikacja dotyczy funkcji lub procedury bez wpływu na jej rzeczywistą wartość.
Z drugiej strony, jeśli parametry są przekazywane przez referencje; rzeczywista wartość tego parametru zostanie zmieniona, gdy zostanie wywołana w kodzie zgodnie z instrukcjami.
Różnica między procedurami a funkcjami
• Kiedy parametr jest przekazywany do procedury; nie zwraca żadnej wartości, podczas gdy funkcja zawsze zwraca wartość.
• Jedną z głównych różnic w obu z nich jest to, że procedury nie są używane w bazach danych, podczas gdy funkcje odgrywają ważną rolę w zwracaniu wartości z bazy danych.
• Procedury mogą zwracać wiele wartości, a funkcje mogą zwracać wartości ograniczone.
• Operacje DML mogą być używane w procedurach składowanych; jednak nie są one możliwe w funkcjach.
• Funkcje mogą zwracać tylko jedną wartość i jest to obowiązkowe, podczas gdy procedury mogą zwracać n lub zero wartości.
• W funkcjach nie można wykonać obsługi błędów, podczas gdy można to wykonać w procedurach składowanych.
• Parametry wejściowe i wyjściowe mogą być przekazywane w procedurach, podczas gdy w przypadku funkcji; można przekazywać tylko parametry wejściowe.
• Funkcje mogą być wywoływane z procedur, podczas gdy nie jest możliwe wywołanie procedury z funkcji.
• Zarządzanie transakcjami może być brane pod uwagę w procedurach i nie może być brane pod uwagę w przypadku funkcji.