Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wywoływanie notacji dla podprogramów PL/SQL w bazie danych Oracle

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:

  1. Zapis pozycyjny
  2. Zapis nazwany i
  3. 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić nazwę klucza podstawowego w Oracle, aby można go było ponownie użyć?

  2. jak używać ograniczenia sprawdzania w Oracle

  3. varchar2(n BYTE|CHAR) default -> CHAR lub BYTE

  4. Wielkie litery w nazwiskach osób w programowaniu

  5. Zagnieżdżone łączenie pętli w Oracle 11g