Oracle
 sql >> Database >  >> RDS >> Oracle

Cosa sono le stored procedure PL/SQL nel database Oracle

Simile alle funzioni PL/SQL, una stored procedure è una autonoma sottoprogramma che ha lo scopo di svolgere alcune attività specifiche. Analogamente alle funzioni, anche le procedure sono denominate blocchi PL/SQL, quindi possono essere riutilizzate perché sono archiviate nel database come oggetto di database. Ma a differenza delle funzioni PL/SQL, una stored procedure non restituisce alcun valore .

Sintassi delle stored procedure PL/SQL

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

La precedente sintassi della procedura memorizzata PL/SQL è praticamente simile alla sintassi delle funzioni PL/SQL che abbiamo visto nell'ultimo tutorial PL/SQL. Tranne due cose:

  1. Non esiste una clausola di reso.

Una differenza fondamentale tra una funzione PL/SQL e una procedura memorizzata è che, a differenza di Funzioni, una procedura memorizzata non restituisce alcun valore.

  1. Clausola AUTHID.

La clausola AUTHID viene utilizzata per impostare il modello di autorità per le procedure PL/SQL. Questa clausola ha due flag.

  1. DEFINATORE e
  2. UTENTE_CURRENT

Poiché questa clausola è facoltativa, quindi nel caso in cui non utilizzi la clausola AUTHID, Oracle Engine imposterà l'autorità (AUTHID) su DEFINER per impostazione predefinita per te. Ora, ti starai chiedendo quali sono questi diritti DEFINER e CURRENT_USER?

DEFINER a destra: Il diritto di definizione è il diritto predefinito assegnato alla procedura da Oracle Engine. Questo diritto significa che chiunque disponga del privilegio di esecuzione sulla procedura agisce come se fosse il proprietario dello schema in cui viene creato il privilegio.

CURRENT_USER a destra: L'impostazione del livello di autorizzazione di una procedura memorizzata sul diritto utente_corrente sovrascrive il diritto predefinito che è definitore e lo cambia nei diritti invocatore.

L'autorità di diritto dell'invocatore significa che chiami la procedura per agire sui tuoi dati locali e richiede che tu replichi gli oggetti dati in qualsiasi schema partecipante.

Alcuni punti extra sulla procedura archiviata

  • Puoi definire una procedura con o senza parametri formali.
  • Un parametro può essere valore pass-by o passa per riferimento .
  • Una procedura sarà una procedura pass-by-value quando non specifichi la modalità parametro perché utilizza la modalità IN predefinita.

Questo è tutto su Introduzione alle stored procedure PL/SQL. Immagino che ti divertirai anche a leggere questi blog di seguito menzionati. Tutti i blog sono scritti tenendo conto del colloquio di lavoro e della certificazione Oracle Database, assicurati di controllarli.

  • Differenze tra funzione PL/SQL e stored procedure PL/SQL?
  • Cosa sono le modalità parametro nelle funzioni e procedure PL/SQL?
  • Cosa sono i parametri formali ed effettivi?

Ricorda sempre:puoi aiutare gli altri a imparare e supportare me, il mio canale e questo blog condividendolo con i tuoi amici sui tuoi social media.

Questo è tutto ragazzi. Grazie per aver letto. Abbi cura di te e buona giornata!