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

Struttura e tipi di blocchi Oracle PLSQL

Qui parleremo della struttura a blocchi Oracle PLSQL e dei tipi

Cos'è PL/SQL


PL/SQL è l'estensione proprietaria di Oracle per SQL che consente funzionalità di linguaggio procedurale. Offre tutte le funzionalità della moderna ingegneria del software come l'incapsulamento dei dati, la gestione delle eccezioni, il nascondiglio delle informazioni e l'orientamento agli oggetti

Perché usare PLSQL

1) Integrazione con strumenti di sviluppo come moduli Oracle, Reports

2) È possibile raggruppare più istruzioni in un singolo blocco plsql  e inviarle al server Oracle con conseguente minor traffico di rete

3) Sviluppo del programma modulare:scomporre la logica/problema complesso in un insieme di moduli logici gestibili, ben definiti e implementarli utilizzando blocchi

4) Portabilità:poiché è nativo del server Oracle, può essere spostato facilmente

5) Fornisce strutture di controllo del linguaggio procedurale come if condition, looping

6) Ha la capacità di gestire errori e sollevare eccezioni in base ad esso

Struttura a blocchi PLSQL

Un blocco plsql viene creato in tre sezioni Dichiara, eseguibile ed eccezione.

DICHIARA(facoltativo) – questa sezione contiene variabili, costanti, cursori ed eccezioni definite dall'utente.
BEGIN(Obbligatorio)

ESEGUIBILE – questa sezione contiene tutte le istruzioni SQL.

ECCEZIONE (opzionale)- questa sezione contiene i gestori degli errori.

END(Obbligatorio);

Quindi la dichiarazione e la sezione delle eccezioni sono facoltative.

Esempio di struttura a blocchi

DECLARE 
 l_number  NUMBER;
 BEGIN
 l_number := 1;
 Dbms_output.put_line(l_number);
 Exception
 When others then
 Dbms_output.put_line(‘Exception occurred’);
 END;
 /

Punti importanti da annotare

1) Tutte le variabili e le costanti sono definite nella sezione dichiara

2) Metti un punto e virgola; alla fine dell'istruzione sql o dell'istruzione di controllo plsql

3) In PL/SQL tutti gli errori vengono gestiti nel blocco Exception.

4) Begin e End sono istruzioni obbligatorie che indicano inizio e fine del blocco PL/SQL.

5) Le variabili e le costanti devono essere dichiarate prima di poter essere utilizzate.

6) I valori possono essere assegnati alle variabili direttamente utilizzando l'operatore di assegnazione “:=”, tramite un'istruzione SELECT … INTO o Quando utilizzato come parametro OUT o IN OUT da una procedura.

7) La parola chiave della sezione Declare, Begin  , l'eccezione non è seguita da punto e virgola

8) End e tutte le altre istruzioni plsql richiedono un punto e virgola per terminare l'istruzione

Tipi di blocchi PLSQL

Anonimo :i blocchi anonimi sono blocchi senza nome. Sono dichiarati nel punto dell'applicazione in cui devono essere eseguiti

DECLARE 
 l_number  NUMBER;
 BEGIN
 l_number := 1;
 Dbms_output.put_line(l_number);
 Exception
 When others then
 Dbms_output.put_line(‘Exception occurred’);
 END;
 /

Funzione :Questi sono nomi di blocchi PLSQL che possono accettare parametri e calcolare alcune funzioni e restituirle. Può essere archiviato nel server o nell'applicazione Oracle

Syntax
FUNCTION name [(parameter[, parameter, …])] RETURN datatype IS
 [local declarations]
 BEGIN
 executable statements
 [EXCEPTION exception handlers]
 END [name];
 Example
 Create or replace function FUNC return number
 As
 l_number  NUMBER;
 BEGIN
 Select count(*) into l_number  from emp;
 return(l_number)
 END;
 /

Procedura :Questi sono i nomi dei blocchi PLSQL che possono accettare parametri ed elaborare alcune informazioni e possono o possono restituire valori. Può essere archiviato nel server o nell'applicazione Oracle

Syntax
 PROCEDURE name [(parameter[, parameter, …])] IS
 [local declarations]
 BEGIN
 executable statements
 [EXCEPTION exception handlers]
 END [name];
 Example
 Create or replace procedure  remove_emp (emp_id  number)
 As
 BEGIN
 Delete from emp where employee_id=emp_id;
 END;
 /

Differenza  tra  funzione e procedura

Funzione Procedura
La funzione deve restituire un valore Procedura non necessaria
Sintassi  Sintassi
Nome FUNZIONE (elenco di argomenti …..) Il tipo di dati restituito è Nome PROCEDURA (lista parametri…..)
Dichiarazioni di variabili locali è
Inizia Dichiarazioni di variabili locali
Istruzioni eseguibili INIZIA
Eccezione Dichiarazioni eseguibili.
gestori di esecuzione Eccezione.
Fine; gestori di eccezioni
  fine;
   
La funzione può essere utilizzata in SQL con alcune restrizioni La procedura non può essere chiamata direttamente da SQL.

Sintassi e linee guida per i blocchi Oracle PLSQL

1) I caratteri e le date letterali devono essere racchiusi tra virgolette singole

2) Inserisci commenti su più righe tra /* e */

3) La maggior parte delle funzioni sql può essere utilizzata in PLSQL. Abbiamo la funzione char,date,number disponibile in PLSQL proprio come SQL

4) gruppo per funzione non sono disponibili in PLSQL. Può essere utilizzato solo nell'istruzione sql in PLSQL

5) Dovremmo usare un'adeguata indentazione per rendere leggibile il codice

6) Si consiglia di scrivere l'istruzione DML in maiuscolo, le parole chiave PLSQL, i tipi di dati in maiuscolo e inserire gli identificatori e il parametro in minuscolo per una migliore leggibilità e manutenzione

Link correlati

Documentazione Oracle PLSQL
25 domande più frequenti sull'intervista Oracle PlSQL
Oracle sql e plsql
come scrivere query sql