Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Aufrufnotation für PL/SQL-Subroutinen in der Oracle-Datenbank

Da es in den vorherigen Tutorials um PL/SQL-Subroutinen wie PL/SQL-Funktionen und gespeicherte Prozeduren ging, ist es daher obligatorisch, über ihre Aufrufnotationen zu sprechen. Das Erlernen der Konzepte von PL/SQL-Subroutinen wird nicht als abgeschlossen angesehen, bis wir auch ihre Aufrufnotationen kennen.

Was ist Aufrufnotation für PL/SQL-Subroutinen?

Die Aufrufnotation ist eine Möglichkeit, Werte für die Parameter einer Unterroutine wie einer PL/SQL-Funktion oder einer gespeicherten Prozedur bereitzustellen.

Arten von Aufrufnotationen für Subroutinen

In Oracle PL/SQL gibt es 3 Arten von Aufrufnotationen. Diese sind:

  1. Positionsnotation
  2. Benannte Notation und
  3. Gemischte Notation

Positional Calling Notations

Die Positionsnotation ist die gebräuchlichste Notation für Aufrufe, die Sie in fast jeder Programmiersprache sehen können. In der Positionsnotation müssen wir den Wert für jeden formalen Parameter sequentiell angeben. Das bedeutet, dass Sie die Werte für die formalen Parameter in der gleichen Reihenfolge angeben müssen, wie sie in der Prozedur oder in der Funktion deklariert wurden.

Bei Positionsschreibweise müssen der Datentyp und die Position des Aktualparameters mit dem Formalparameter übereinstimmen.

Leseempfehlung:Tatsächliche Parameter vs. formale Parameter

Beispiel:Positionsnotation zum Aufrufen von PL/SQL-Subroutinen.

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;
 /

Dies ist das gleiche Beispiel, das wir im PL/SQL-Tutorial 42 zum Erstellen einer gespeicherten Prozedur mit Parametern gemacht haben, wenn auch mit einigen geringfügigen Änderungen. Wenn wir nun die Positionsaufrufnotation verwenden, müssen wir die Werte für beide Parameter der obigen Prozedur auf die gleiche Weise bereitstellen, wie sie deklariert wurden.

Aufruf einer gespeicherten Prozedur mit Positionsnotation in der Oracle-Datenbank

EXECUTE emp_sal(40,2);

In diesem einfachen Prozeduraufruf entspricht der Wert 40 dem formalen Parameter dep_id und der Wert 2 dem Parameter sal_raise.

Named Calling Notations

Mit der Named Calling Notation können Sie Werte an die formalen Parameter übergeben, indem Sie deren Namen verwenden. Auf diese Weise können Sie wiederum nur erforderlichen Parametern Werte zuweisen oder obligatorischen Parametern sagen.

Diese Aufrufnotation ist nützlich, wenn Sie eine Unterroutine mit Parametern haben, bei denen einige dieser Parameter obligatorisch und andere optional sind, und Sie die Werte nur an die obligatorischen übergeben möchten.

Verknüpfungsoperator

Um den formalen Parametern anhand ihrer Namen Werte zuzuweisen, verwenden wir den Assoziationsoperator. Es ist eine Kombination aus dem Gleichheitszeichen (=) und dem Größer-als-Zeichen (>). Wir schreiben den Namen des Formalparameters auf die linke Seite des Operators und den Wert, den Sie zuweisen möchten, auf die rechte Seite des Operators.

Beispiel für Named Calling Notation zum Aufrufen von PL/SQL-Subroutinen

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;
/

Die obige Funktion hat 3 Parameter. Von diesen 3 Parametern sind 2 obligatorisch und 1 optional mit einem Standardwert von 0.

Sie können diese Funktion in Positionsnotation aufrufen. Aber es gibt eine Einschränkung, die Sie erfüllen müssen, nämlich dass Sie Werte für alle formalen Parameter in der gleichen Reihenfolge bereitstellen müssen, in der sie deklariert sind, und der Datentyp von formalen und tatsächlichen Parametern muss übereinstimmen.

Wenn Sie also die optionalen Parameter weglassen und ihren Standardwert verwenden möchten oder einfach die Reihenfolge der Parameter vergessen haben, in der sie deklariert wurden! Dann wird es Ihnen etwas schwerfallen, das obige Unterprogramm in Positionsnotation aufzurufen. In einem solchen Szenario können Sie die Named Calling Notation nutzen. Diese Aufrufnotation bietet Ihnen die gewünschte Flexibilität beim Aufrufen Ihrer Subroutinen.

PL/SQL-Funktionsaufruf mit Named Calling Notation in Oracle Database

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_3 => 5, var_1 =>2);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

Ich habe den PL/SQL-Funktionsaufruf ausführlich im Video-Tutorial zu demselben Thema auf meinem YouTube-Kanal erklärt.

Gemischte Aufrufnotation zum Aufrufen von PL/SQL-Subroutinen

Wie der Name schon sagt, können Sie in gemischter Aufrufnotation Unterroutinen aufrufen, indem Sie die Kombination aus benannter und positioneller Aufrufnotation verwenden. Die gemischte Aufrufnotation ist sehr hilfreich, wenn die Parameterliste mit allen obligatorischen Parametern zuerst und optionalen Parametern als nächstes definiert wird.

Beispiel für gemischte Aufrufnotation zum Aufrufen von PL/SQL-Subroutinen

Hier ist der anonyme Block, in dem wir dieselbe Funktion add_num ( ) aufrufen, die wir codiert haben, als wir die Named-Calling-Notation gemacht haben.

DECLARE
  var_result  NUMBER;
BEGIN
  var_result := add_num(var_1 => 10, 30 ,var_3 =>19);
  DBMS_OUTPUT.put_line('Result ->' || var_result);
END;

So verwenden wir die Notation für gemischte Aufrufe zum Aufrufen von PL/SQL-Subroutinen.

Probieren Sie es selbst aus

Verwenden Sie das Wissen aus den obigen Konzepten und versuchen Sie, die folgende Frage zu lösen:

Schreiben Sie eine PL/SQL-Funktion mit Parametern zum Austauschen zweier Zahlen und rufen Sie diese Funktion mit gemischter Aufrufnotation auf.

Sie können Ihren Code oder den Schnappschuss Ihres Codes auf meinen sozialen Medien [Twitter // Facebook] mit mir teilen.

Ich hoffe, Sie hatten Spaß beim Lesen. Stellen Sie sicher, dass Sie diesen Blog mögen und teilen. Danke und einen schönen Tag.