Unterschied: 1. Gespeicherte Prozeduren werden zum Abschließen bestimmter Vorgänge oder Aufgaben in der Datenbank verwendet, während Funktionen für bestimmte Daten verwendet werden. 2. Der Programmheader der gespeicherten Prozedur wird mit PROCEDURE deklariert und bei der Deklaration ist kein Rückgabetyp erforderlich , während das Programm der Funktion FUNCTION in der Header-Deklaration verwendet und den Rückgabetyp bei der Deklaration beschreibt.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.
Gespeicherte Prozedur
Gespeicherte Prozedur (Stored Procedure) ist eine Reihe von SQL-Anweisungen zum Ausführen bestimmter Funktionen, die kompiliert und in der Datenbank gespeichert werden. Der Benutzer führt eine gespeicherte Prozedur aus, indem er ihren Namen angibt und Parameter angibt (sofern die gespeicherte Prozedur über Parameter verfügt). Gespeicherte Prozeduren sind ein wichtiges Objekt in der Datenbank, und jede gut gestaltete Datenbankanwendung sollte gespeicherte Prozeduren verwenden. Eine gespeicherte Prozedur ist eine durch Flusskontrolle und SQL-Anweisungen geschriebene Prozedur, die auf dem Datenbankserver kompiliert und optimiert wird. Sie muss nur aufgerufen werden, wenn das Anwendungsprogramm sie verwendet. In ORACLE können mehrere zusammengehörige Prozeduren zu einem Programmpaket zusammengefasst werden.
Vorteile:
1. Gespeicherte Prozeduren werden nur dann kompiliert, wenn sie in der Zukunft ausgeführt werden. Es ist nicht erforderlich, sie jedes Mal neu zu kompilieren. Daher kann die Verwendung gespeicherter Prozeduren die Ausführungsgeschwindigkeit der Datenbank verbessern.
2. Bei der Ausführung komplexer Vorgänge in der Datenbank (z. B. Aktualisieren, Einfügen, Abfragen und Löschen für mehrere Tabellen) kann dieser komplexe Vorgang in einer gespeicherten Prozedur gekapselt und in Verbindung mit der von der Datenbank bereitgestellten Transaktionsverarbeitung verwendet werden.
3. Gespeicherte Prozeduren können wiederverwendet werden, was die Arbeitsbelastung von Datenbankentwicklern verringern kann.
4. Hohe Sicherheit, Sie können festlegen, dass nur ein bestimmter Benutzer das Recht hat, den angegebenen gespeicherten Prozess zu verwenden.
Der Unterschied zwischen gespeicherten Prozeduren und Funktionen
Der größte Unterschied zwischen den beiden ist:
1). Funktionen geben immer Daten an den Aufrufer zurück und geben im Allgemeinen nur einen Wert zurück (Prozeduren) geben Daten nicht direkt zurück, können jedoch die Werte von Ausgabeparametern ändern. Dies kann ungefähr als Rückgabe von Werten angesehen werden, und die Anzahl der Werte von Ausgabeparametern einer gespeicherten Prozedur ist unbegrenzt.
Wenn Sie aus allgemeiner Anwendungssicht keinen Rückgabewert oder mehrere Rückgabewerte benötigen, verwenden Sie eine gespeicherte Prozedur. Wenn Sie nur einen Rückgabewert verwenden, verwenden Sie eine Funktion.
2. In der Funktionsdefinition können nur DDL-Anweisungen (z. B. Select usw.) verwendet werden. DML-Anweisungen werden hauptsächlich in Prozeduren verwendet (bei der Ausführung komplexer Vorgänge in der Datenbank, z. B. Aktualisieren, Einfügen, Abfragen und Löschen). mehrere Tabellen).
Wenn Sie die ausgewählte Ergebnismenge verwenden möchten, müssen Sie einen Cursor verwenden
Gespeicherte Prozeduren |
Funktion ?? Die Header-Anweisung verwendet PROCEDURE. |
Sie können die 3 Parametermodi IN/OUT/IN OUT verwenden | |
|
Kann als unabhängige PL/SQL-Anweisung ausgeführt werden |
Kann null oder mehr Werte über OUT/IN OUT zurückgeben | |
Gespeicherte Prozeduren können nicht in SQL-Anweisungen (DML oder SELECT) aufgerufen werden. | |
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen gespeicherten Prozeduren und Funktionen in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!