Ponieważ kilka poprzednich samouczków dotyczyło podprogramów PL/SQL, takich jak funkcje PL/SQL i procedury składowane, obowiązkowe staje się omówienie ich notacji wywołania. Poznanie koncepcji podprogramów PL/SQL nie będzie uważane za kompletne, dopóki nie nauczymy się również ich notacji wywoławczych.
Co to jest notacja wywołań dla podprogramów PL/SQL?
Wywołanie notacji to sposób na dostarczenie wartości do parametrów podprogramu, takiego jak funkcja PL/SQL lub procedura składowana.
Rodzaje notacji wywołań dla podprogramów
W Oracle PL/SQL istnieją 3 rodzaje notacji wywołań. Są to:
- Zapis pozycyjny
- Zapis nazwany i
- Mieszany zapis połączeń
Pozycyjne zapisy połączeń
Notacja pozycyjna jest najczęstszą notacją wywołań, którą można zobaczyć w prawie każdym języku programowania komputerowego. W notacji pozycyjnej musimy określić wartość każdego parametru formalnego w sposób sekwencyjny. Oznacza to, że musisz podać wartości parametrów formalnych w tej samej kolejności, w jakiej zostały zadeklarowane w procedurze lub w funkcji.
W notacji pozycyjnej typ danych i pozycja rzeczywistego parametru muszą być zgodne z parametrem formalnym.
Sugerowany odczyt:parametry rzeczywiste a parametry formalne
Przykład:Notacja pozycyjna do wywoływania podprogramów PL/SQL.
CREATE OR REPLACE PROCEDURE emp_sal (dep_id NUMBER, sal_raise NUMBER) IS BEGIN UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id; DBMS_OUTPUT.PUT_LINE ('salary updated successfully'); END; /
Jest to ten sam przykład, który zrobiliśmy w PL/SQL Tutorial 42 na temat tworzenia procedury składowanej z parametrami, aczkolwiek z niewielkimi zmianami. Teraz, jeśli używamy notacji wywołań pozycyjnych, musimy podać wartości do obu parametrów powyższej procedury w ten sam sposób, w jaki zostały zadeklarowane.
Wywołanie procedury składowanej przy użyciu notacji pozycyjnej w bazie danych Oracle
EXECUTE emp_sal(40,2);
W tym prostym wywołaniu procedury wartość 40 odpowiada formalnemu parametrowi dep_id, a wartość 2 odpowiada parametrowi sal_raise.
Nazwane zapisy połączeń
Notacja nazwanych wywołań umożliwia przekazywanie wartości do parametrów formalnych przy użyciu ich nazw. To z kolei pozwoli ci przypisać wartości tylko do wymaganych lub obowiązkowych parametrów.
Ta notacja wywołująca jest przydatna, gdy masz podprogram z parametrami, w których niektóre z tych parametrów są obowiązkowe, a niektóre opcjonalne i chcesz przekazać wartości tylko do obowiązkowych.
Operator stowarzyszenia
W celu nadania wartości parametrom formalnym za pomocą ich nazw używamy operatora asocjacji. Jest to kombinacja znaku równego (=) i znaku większego niż (>). Piszemy nazwę parametru formalnego po lewej stronie operatora i wartość, którą chcesz przypisać do prawej strony operatora.
Przykład nazwanej notacji wywołania do wywoływania podprogramów PL/SQL
CREATE OR REPLACE FUNCTION add_num (var_1 NUMBER, var_2 NUMBER DEFAULT 0, var_3 NUMBER ) RETURN NUMBER IS BEGIN RETURN var_1 + var_2 + var_3; END; /
Powyższa funkcja ma 3 parametry. Spośród tych 3 parametrów 2 są obowiązkowe, a 1 jest opcjonalny z wartością domyślną 0.
Możesz wywołać tę funkcję za pomocą notacji pozycyjnej. Ma jednak ograniczenie, które musisz spełnić, a mianowicie, że musisz podać wartości wszystkim parametrom formalnym w tej samej kolejności, w jakiej zostały zadeklarowane, a typ danych parametrów formalnych i rzeczywistych musi być zgodny.
Więc jeśli chcesz pominąć opcjonalny parametr i chcesz użyć jego domyślnej wartości lub po prostu zapomniałeś kolejności parametru, w której zostały zadeklarowane! Wtedy będzie ci nieco trudno wywołać powyższy podprogram za pomocą notacji pozycyjnej. W takim scenariuszu możesz skorzystać z Named Calling Notation. Ta notacja wywołania zapewni pożądaną elastyczność w wywoływaniu podprogramów.
Wywołanie funkcji PL/SQL przy użyciu nazwanego notacji wywołań w bazie danych Oracle
DECLARE var_result NUMBER; BEGIN var_result := add_num(var_3 => 5, var_1 =>2); DBMS_OUTPUT.put_line('Result ->' || var_result); END;
Wyjaśniłem szczegółowo wywołanie funkcji PL/SQL w samouczku wideo na ten sam temat na moim kanale YouTube.
Mixed Calling Notation do wywoływania podprogramów PL/SQL
Jak sama nazwa wskazuje, w mieszanej notacji wywoływania można wywoływać podprogramy za pomocą kombinacji imiennych i pozycyjnych notacji wywoływania. Mieszana notacja wywołań jest bardzo pomocna, gdy lista parametrów jest zdefiniowana najpierw ze wszystkimi obowiązkowymi parametrami, a następnie z parametrami opcjonalnymi.
Przykład mieszanej notacji wywołania do wywoływania podprogramów PL/SQL
Oto blok anonimowy, w którym wywołujemy tę samą funkcję add_num ( ), którą zakodowaliśmy podczas wykonywania notacji wywołań nazwanych.
DECLARE var_result NUMBER; BEGIN var_result := add_num(var_1 => 10, 30 ,var_3 =>19); DBMS_OUTPUT.put_line('Result ->' || var_result); END;
W ten sposób używamy mieszanej notacji wywołań do wywoływania podprogramów PL/SQL.
Wypróbuj sam
Korzystając z wiedzy z powyższych koncepcji, spróbuj rozwiązać następujące pytanie:
Napisz funkcję PL/SQL z parametrami do zamiany dwóch liczb i wywołaj tę funkcję za pomocą mieszanej notacji wywołania.
Możesz udostępnić mi swój kod lub migawkę kodu w moich mediach społecznościowych [Twitter // Facebook].
Mam nadzieję, że podobało Ci się czytanie. Upewnij się, że polubisz i udostępnisz tego bloga. Dziękuję i życzę miłego dnia.