Blocco PL / SQL: STRUCTURE, Syntax, ANONYMOUS Example

Sommario:

Anonim

Cos'è il blocco PL / SQL?

In PL / SQL, il codice non viene eseguito in formato a riga singola, ma viene sempre eseguito raggruppando il codice in un singolo elemento chiamato Blocks. In questo tutorial imparerai a conoscere questi blocchi.

I blocchi contengono sia PL / SQL che istruzioni SQL. Tutte queste istruzioni verranno eseguite nel loro insieme piuttosto che eseguire una singola istruzione alla volta.

In questo tutorial imparerai:

  • Cos'è il blocco PL / SQL?
  • Struttura a blocchi
  • Sintassi del blocco PL / SQL
  • Tipi di blocco PL / SQL

Struttura a blocchi

I blocchi PL / SQL hanno una struttura predefinita in cui il codice deve essere raggruppato. Di seguito sono riportate diverse sezioni dei blocchi PL / SQL.

  1. Sezione dichiarazione
  2. Sezione esecuzione
  3. Sezione Gestione delle eccezioni

L'immagine sotto mostra i diversi blocchi PL / SQL e il loro ordine di sezione.

Sezione Dichiarazione

Questa è la prima sezione dei blocchi PL / SQL. Questa sezione è una parte facoltativa. Questa è la sezione in cui verrà dichiarata la dichiarazione di variabili, cursori, eccezioni, sottoprogrammi, istruzioni pragma e raccolte necessarie nel blocco. Di seguito sono riportate alcune altre caratteristiche di questa parte.

  • Questa particolare sezione è facoltativa e può essere ignorata se non sono necessarie dichiarazioni.
  • Questa dovrebbe essere la prima sezione di un blocco PL / SQL, se presente.
  • Questa sezione inizia con la parola chiave "DECLARE" per trigger e blocco anonimo. Per altri sottoprogrammi, questa parola chiave non sarà presente. Invece, la parte dopo la definizione del nome del sottoprogramma contrassegna la sezione della dichiarazione.
  • Questa sezione dovrebbe essere sempre seguita dalla sezione di esecuzione.

Sezione esecuzione

La parte di esecuzione è la parte principale e obbligatoria che esegue effettivamente il codice scritto al suo interno. Poiché PL / SQL si aspetta le istruzioni eseguibili da questo blocco, questo non può essere un blocco vuoto, cioè dovrebbe contenere almeno una riga di codice eseguibile valida. Di seguito sono riportate alcune altre caratteristiche di questa parte.

  • Può contenere sia codice PL / SQL che codice SQL.
  • Questo può contenere uno o più blocchi al suo interno come un blocco annidato.
  • Questa sezione inizia con la parola chiave "BEGIN".
  • Questa sezione dovrebbe essere seguita da "FINE" o dalla sezione Gestione delle eccezioni (se presente)

Sezione Gestione delle eccezioni:

L'eccezione è inevitabile nel programma che si verifica in fase di esecuzione e per gestire questo Oracle ha fornito una sezione di gestione delle eccezioni in blocchi. Questa sezione può contenere anche istruzioni PL / SQL. Questa è una sezione opzionale dei blocchi PL / SQL.

  • Questa è la sezione in cui viene gestita l'eccezione sollevata nel blocco di esecuzione.
  • Questa sezione è l'ultima parte del blocco PL / SQL.
  • Il controllo da questa sezione non può mai tornare al blocco di esecuzione.
  • Questa sezione inizia con la parola chiave "ECCEZIONE".
  • Questa sezione dovrebbe essere sempre seguita dalla parola chiave "END".

La parola chiave "END" indica la fine del blocco PL / SQL.

Sintassi del blocco PL / SQL

Di seguito è riportata la sintassi della struttura a blocchi PL / SQL.

DECLARE --optionalBEGIN --mandatoryEXCEPTION --optionalEND; --mandatory/

Nota: un blocco dovrebbe essere sempre seguito da "/" che invia le informazioni al compilatore sulla fine del blocco.

Tipi di blocco PL / SQL

I blocchi PL / SQL sono principalmente di due tipi.

  1. Blocchi anonimi
  2. Blocchi con nome

Blocchi anonimi:

I blocchi anonimi sono blocchi PL / SQL a cui non è assegnato alcun nome. Devono essere creati e utilizzati nella stessa sessione perché non verranno archiviati nel server come oggetti di database.

Poiché non devono essere archiviati nel database, non sono necessari passaggi di compilazione. Vengono scritti ed eseguiti direttamente e la compilazione e l'esecuzione avvengono in un unico processo.

Di seguito sono riportate alcune altre caratteristiche dei blocchi anonimi.

  • Questi blocchi non hanno alcun nome di riferimento specificato per loro.
  • Questi blocchi iniziano con la parola chiave "DECLARE" o "BEGIN".
  • Poiché questi blocchi non hanno alcun nome di riferimento, non possono essere memorizzati per scopi successivi. Devono essere creati ed eseguiti nella stessa sessione.
  • Possono chiamare gli altri blocchi denominati, ma la chiamata al blocco anonimo non è possibile in quanto non ha alcun riferimento.
  • Può contenere un blocco annidato che può essere denominato o anonimo. Può anche essere annidato in qualsiasi blocco.
  • Questi blocchi possono avere tutte e tre le sezioni del blocco, in cui la sezione di esecuzione è obbligatoria, le altre due sezioni sono opzionali.

Blocchi denominati:

I blocchi con nome hanno un nome specifico e univoco per loro. Sono archiviati come oggetti di database nel server. Poiché sono disponibili come oggetti di database, è possibile fare riferimento o utilizzarli purché siano presenti sul server. Il processo di compilazione per i blocchi denominati avviene separatamente durante la loro creazione come oggetti di database.

Di seguito sono riportate alcune altre caratteristiche dei blocchi con nome.

  • Questi blocchi possono essere richiamati da altri blocchi.
  • La struttura del blocco è la stessa di un blocco anonimo, tranne per il fatto che non inizierà mai con la parola chiave "DECLARE". Invece, inizierà con la parola chiave "CREATE" che indica al compilatore di crearlo come oggetto database.
  • Questi blocchi possono essere annidati all'interno di altri blocchi. Può anche contenere blocchi annidati.
  • I blocchi denominati sono fondamentalmente di due tipi:
  1. Procedura
  2. Funzione
Impareremo di più su questi blocchi con nome negli argomenti "Procedura" e "Funzione" nel tutorial successivo.

Sommario

Dopo questo tutorial, dovresti essere a conoscenza dei blocchi PL / SQL e dei suoi tipi, diverse sezioni di blocchi e il loro utilizzo. La descrizione dettagliata dei blocchi PL / SQL denominati verrà trattata nel tutorial successivo.