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

Funktionen vs. Prozeduren in Oracle

Der Unterschied besteht darin, dass eine Funktion standardmäßig einen Wert (beliebigen Typs) zurückgeben muss, während Sie im Fall einer Prozedur Parameter wie OUT verwenden müssen oder IN OUT Parameter, um die Ergebnisse zu erhalten. Sie können eine Funktion in einem normalen SQL verwenden wobei Sie keine Prozedur in SQL verwenden können Aussagen.

Einige Unterschiede zwischen Funktionen und Prozeduren

  1. Eine Funktion gibt immer einen Wert mit der return-Anweisung zurück, während eine Prozedur einen oder mehrere Werte über Parameter zurückgeben kann oder überhaupt nicht zurückgibt. Obwohl OUT Parameter können immer noch in Funktionen verwendet werden, sie sind nicht ratsam und es gibt auch keine Fälle, in denen dies erforderlich sein könnte. Mit OUT -Parameter schränkt die Verwendung einer Funktion in einer SQL-Anweisung ein.

  2. Funktionen können in typischen SQL-Anweisungen wie SELECT verwendet werden , INSERT , UPDATE , DELETE , MERGE , während Prozeduren dies nicht können.

  3. Funktionen werden normalerweise für Berechnungen verwendet, während Prozeduren normalerweise zum Ausführen von Geschäftslogik verwendet werden.

  4. Oracle bietet die Möglichkeit, "funktionsbasierte Indizes" zu erstellen, um die Leistung der nachfolgenden SQL-Anweisung zu verbessern. Dies gilt, wenn die Funktion für eine indizierte Spalte in der Where-Klausel einer Abfrage ausgeführt wird.

Weitere Informationen zu Funktionen vs. Verfahren hier und hier.