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

Was sind gespeicherte PL/SQL-Prozeduren in der Oracle-Datenbank?

Ähnlich wie PL/SQL-Funktionen ist eine gespeicherte Prozedur eine in sich abgeschlossene Prozedur Unterprogramm, das bestimmte Aufgaben erledigen soll. Ähnlich wie Funktionen werden Prozeduren als PL/SQL-Blöcke bezeichnet, sodass sie wiederverwendet werden können, da sie in der Datenbank als Datenbankobjekt gespeichert werden. Aber im Gegensatz zu PL/SQL-Funktionen gibt eine gespeicherte Prozedur keinen Wert zurück .

Syntax von gespeicherten PL/SQL-Prozeduren

CREATE [OR REPLACE] PROCEDURE pro_name (Parameter – List)
IS [AUTHID 	DEFINER | CURRENT_USER]
	Declare statements
BEGIN
	Executable statements 
END procedure name;
/ 

Die obige Syntax der gespeicherten PL/SQL-Prozedur ist der Syntax der PL/SQL-Funktionen ziemlich ähnlich, die wir im letzten PL/SQL-Tutorial gesehen haben. Bis auf zwei Dinge:

  1. Es gibt keine Return-Klausel.

Ein wesentlicher Unterschied zwischen einer PL/SQL-Funktion und einer gespeicherten Prozedur besteht darin, dass eine gespeicherte Prozedur im Gegensatz zu Funktionen keinen Wert zurückgibt.

  1. AUTHID-Klausel.

Die AUTHID-Klausel wird zum Festlegen des Autoritätsmodells für die PL/SQL-Prozeduren verwendet. Diese Klausel hat zwei Flags.

  1. DEFINER und
  2. CURRENT_USER

Da diese Klausel optional ist, wird Oracle Engine die Autorität (AUTHID) standardmäßig für Sie auf DEFINER setzen, falls Sie die AUTHID-Klausel nicht verwenden. Jetzt fragen Sie sich bestimmt, was diese DEFINER- und CURRENT_USER-Rechte sind?

DEFINER rechts: Das Definitionsrecht ist das Standardrecht, das der Prozedur von der Oracle-Engine zugewiesen wird. Dieses Recht bedeutet, dass jeder mit Ausführungsberechtigung für die Prozedur so handelt, als wäre er der Eigentümer des Schemas, in dem die Berechtigung erstellt wird.

CURRENT_USER-Recht: Das Festlegen der Autoritätsebene einer gespeicherten Prozedur auf das Recht „current_user“ überschreibt das Standardrecht „Definierer“ und ändert es in die Rechte des Aufrufers.

Berechtigung des Aufrufers bedeutet, dass Sie die Prozedur aufrufen, um auf Ihre lokalen Daten einzuwirken, und es erfordert, dass Sie Datenobjekte in jedem teilnehmenden Schema replizieren.

Einige zusätzliche Punkte zu gespeicherten Prozeduren

  • Sie können eine Prozedur mit oder ohne formale Parameter definieren.
  • Ein Parameter kann entweder pass-by-value sein oder Pass-by-Reference .
  • Eine Prozedur ist eine Pass-by-Value-Prozedur, wenn Sie den Parametermodus nicht angeben, da sie den standardmäßigen IN-Modus verwendet.

Das war's bei der Einführung in gespeicherte PL/SQL-Prozeduren. Ich denke, Sie werden es auch genießen, diese unten genannten Blogs zu lesen. Alle Blogs wurden unter Berücksichtigung von Vorstellungsgesprächen und der Oracle-Datenbankzertifizierung geschrieben. Sehen Sie sich diese unbedingt an.

  • Unterschiede zwischen PL/SQL-Funktion und gespeicherten PL/SQL-Prozeduren?
  • Was sind Parametermodi in PL/SQL-Funktionen und -Prozeduren?
  • Was sind formale und tatsächliche Parameter?

Denken Sie immer daran:Sie können anderen beim Lernen helfen und mich und meinen Kanal sowie diesen Blog unterstützen, indem Sie ihn mit Ihren Freunden in Ihren sozialen Medien teilen.

Das ist es, Leute. Danke fürs Lesen. Pass auf dich auf &hab einen tollen Tag!