Unterschied zwischen gespeicherter Prozedur und Funktion

Inhaltsverzeichnis:

Unterschied zwischen gespeicherter Prozedur und Funktion
Unterschied zwischen gespeicherter Prozedur und Funktion

Video: Unterschied zwischen gespeicherter Prozedur und Funktion

Video: Unterschied zwischen gespeicherter Prozedur und Funktion
Video: Эволюция ОС Android от 1,0 до 11 2024, November
Anonim

Gespeicherte Prozedur vs. Funktion

Gespeicherte Prozeduren und Funktionen sind zwei Arten von Programmierblöcken. Beide müssen Vornamen haben. Diese aufrufenden Namen werden verwendet, um sie innerhalb eines anderen Programmierblocks wie Prozeduren, Funktionen und Pakete oder SQL-Abfragen aufzurufen. Diese beiden Objekttypen akzeptieren Parameter und führen die Aufgabe hinter diesen Objekten aus. Dies ist die Syntax (in ORACLE), um eine gespeicherte Prozedur zu erstellen, Erstellen oder Ersetzen einer Prozedur Prozedurname (Parameter)

als

begin

Anweisungen;

Ausnahme

Ausnahmebehandlung

end;

Und hier ist die Syntax zum Erstellen einer Funktion (in ORACLE), Funktion function_name (Parameter) erstellen oder ersetzen

return return_datatype

als

begin

Anweisungen;

return return_value/variable;

Ausnahme;

Ausnahmebehandlung;

end;

Gespeicherte Prozeduren

Wie oben erwähnt, werden gespeicherte Prozeduren Programmierblöcke genannt. Sie akzeptieren Parameter als Benutzereingaben und verarbeiten sie gemäß der Logik hinter der Prozedur und geben das Ergebnis aus (oder führen eine bestimmte Aktion aus). Diese Parameter können vom Typ IN, OUT und INOUT sein. Variablendeklarationen, Variablenzuweisungen, Steueranweisungen, Schleifen, SQL-Abfragen und andere Funktions-/Prozedur-/Paketaufrufe können sich innerhalb des Hauptteils von Prozeduren befinden.

Funktionen

Funktionen sind auch benannte Programmierblöcke, die einen Wert mit der RETURN-Anweisung zurückgeben müssen, und bevor sie einen Wert zurückgeben, führt ihr Körper auch einige Aktionen aus (gemäß der gegebenen Logik). Funktionen akzeptieren auch auszuführende Parameter. Innerhalb der Abfragen können Funktionen aufgerufen werden. Wenn eine Funktion innerhalb einer SELECT-Abfrage aufgerufen wird, gilt sie für jede Zeile der Ergebnismenge der SELECT-Abfrage. Es gibt mehrere Kategorien von ORACLE-Funktionen. Sie sind,

Einzelzeilenfunktionen (gibt ein einzelnes Ergebnis für jede einzelne Zeile der Abfrage zurück)

Es gibt Unterkategorien von einzeiligen Funktionen.

  • Numerische Funktion (Bsp.: ABS, SIN, COS)
  • Zeichenfunktion (Bsp.: CONCAT, INITCAP)
  • Datumszeitfunktion (Bsp.: LETZTER_TAG, NÄCHSTER_TAG)
  • Konvertierungsfunktionen (Bsp.: TO_CHAR, TO_DATE)
  • Erfassungsfunktion (Bsp.: CARDINALITY, SET)
  • Aggregatfunktionen (Gibt eine einzelne Zeile zurück, basierend auf einer Gruppe von Zeilen. Bsp.: AVG, SUM, MAX)
  • Analysefunktionen
  • Objektreferenzfunktionen
  • Modellfunktionen
  • Benutzerdefinierte Funktionen

Was ist der Unterschied zwischen einer Funktion und einer gespeicherten Prozedur?

• Alle Funktionen müssen mit der RETURN-Anweisung einen Wert zurückgeben. Gespeicherte Prozeduren geben keine Werte mit der RETURN-Anweisung zurück. Die RETURN-Anweisung innerhalb einer Prozedur gibt ihre Kontrolle an das aufrufende Programm zurück. OUT-Parameter können verwendet werden, um Werte aus gespeicherten Prozeduren zurückzugeben.

• Funktionen können innerhalb der Abfragen aufgerufen werden, gespeicherte Prozeduren können jedoch nicht innerhalb der Abfragen verwendet werden.

• Der RETURN-Datentyp muss enth alten sein, um eine Funktion zu erstellen, aber in der Stored Procedure DDL ist dies nicht der Fall.

Empfohlen: