Bloc PL/ SQL: STRUCTURA, Sintaxă, ANONIM Exemplu

Ce este blocul PL/SQL?

În PL/SQL, codul nu este executat în format de o singură linie, dar este întotdeauna executat prin gruparea codului într-un singur element numit Blocuri. În acest tutorial, veți afla despre aceste blocuri.

Blocurile conțin atât instrucțiuni PL/SQL, cât și SQL. Toate aceste instrucțiuni vor fi executate ca un întreg, mai degrabă decât executarea unei singure instrucțiuni la un moment dat.

Structura blocului

Blocurile PL/SQL au o structură predefinită în care codul urmează să fie grupat. Mai jos sunt diferite secțiuni ale blocurilor PL/SQL.

  1. Secțiunea de declarații
  2. Secțiunea de execuție
  3. Secțiunea Excepție-Manipulare

Imaginea de mai jos ilustrează diferitele blocuri PL/SQL și ordinea secțiunilor acestora.

Structura blocului

Sectiunea Declaratii

Aceasta este prima secțiune a blocurilor PL/SQL. Această secțiune este o parte opțională. Aceasta este secțiunea în care vor fi declarate declararea variabilelor, cursoarelor, excepțiilor, subprogramelor, instrucțiunilor pragma și colecțiilor care sunt necesare în bloc. Mai jos sunt câteva caracteristici suplimentare ale acestei părți.

  • Această secțiune este opțională și poate fi omisă dacă nu sunt necesare declarații.
  • Aceasta ar trebui să fie prima secțiune dintr-un bloc PL/SQL, dacă este prezent.
  • Această secțiune începe cu cuvântul cheie „DECLARE” pentru declanșatoare și blocare anonimă. Pentru alte subprograme, acest cuvânt cheie nu va fi prezent. În schimb, partea de după definiția numelui subprogramului marchează secțiunea de declarație.
  • Această secțiune ar trebui să fie întotdeauna urmată de secțiunea de execuție.

Secția de execuție

Partea de execuție este partea principală și obligatorie care execută de fapt codul care este scris în ea. De când PL / SQL așteaptă instrucțiunile executabile din acest bloc, acesta nu poate fi un bloc gol, adică ar trebui să aibă cel puțin o linie de cod executabil valid în el. Mai jos sunt câteva caracteristici suplimentare ale acestei părți.

  • Acesta poate conține atât cod PL/SQL, cât și cod SQL.
  • Acesta poate conține unul sau mai multe blocuri în interiorul său ca bloc imbricat.
  • Această secțiune începe cu cuvântul cheie „ÎNCEPE”.
  • Această secțiune ar trebui să fie urmată fie de „Sfârșit”, fie de secțiunea de gestionare a excepțiilor (dacă este prezentă)

Secțiunea de tratare a excepțiilor

Excepția este inevitabilă în programul care are loc în timpul rulării și pentru a gestiona acest lucru Oracle a furnizat o secțiune de tratare a excepțiilor în blocuri. Această secțiune poate conține, de asemenea, instrucțiuni PL/SQL. Aceasta este o secțiune opțională a blocurilor PL/SQL.

  • Aceasta este secțiunea în care este gestionată excepția ridicată în blocul de execuție.
  • Această secțiune este ultima parte a blocului PL/SQL.
  • Controlul din această secțiune nu poate reveni niciodată la blocul de execuție.
  • Această secțiune începe cu cuvântul cheie „EXCEPȚIE”.
  • Această secțiune ar trebui să fie întotdeauna urmată de cuvântul cheie „END”.

Cuvântul cheie „END” marchează sfârșitul blocului PL/SQL.

Sintaxa blocului PL/SQL

Mai jos este sintaxa structurii blocurilor PL/SQL.

Sintaxa blocului PL/SQL

DECLARE --optional
    <declarations>

BEGIN   --mandatory
    <executable statements. At least one executable statement is mandatory>

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Notă: Un bloc ar trebui să fie întotdeauna urmat de „/” care trimite informații către compilator despre sfârșitul blocului.

Tipuri de bloc PL/SQL

Blocurile PL/SQL sunt în principal de două tipuri.

  1. Blocuri anonime
  2. Blocuri numite

Blocuri anonime

Blocurile anonime sunt blocuri PL/SQL care nu au niciun nume atribuit. Acestea trebuie create și utilizate în aceeași sesiune deoarece nu vor fi stocate pe server ca obiecte de bază de date.

Deoarece nu trebuie să fie stocate în baza de date, nu au nevoie de pași de compilare. Sunt scrise și executate direct, iar compilarea și execuția au loc într-un singur proces.

Mai jos sunt câteva caracteristici suplimentare ale blocurilor anonime.

  • Aceste blocuri nu au niciun nume de referință specificat pentru ele.
  • Aceste blocuri încep cu cuvântul cheie „DECLARE” sau „BEGIN”.
  • Deoarece aceste blocuri nu au nici un nume de referință, acestea nu pot fi stocate în scopuri ulterioare. Acestea vor fi create și executate în aceeași sesiune.
  • Ei pot apela celelalte blocuri numite, dar apelarea la blocul anonim nu este posibilă deoarece nu are nicio referință.
  • Poate avea bloc imbricat în el, care poate fi numit sau anonim. De asemenea, poate fi imbricat în orice bloc.
  • Aceste blocuri pot avea toate cele trei secțiuni ale blocului, în care secțiunea de execuție este obligatorie, celelalte două secțiuni sunt opționale.

Blocuri numite

Blocurile numite au un nume specific și unic pentru ele. Ele sunt stocate ca obiecte de bază de date pe server. Deoarece sunt disponibile ca obiecte de bază de date, ele pot fi menționate sau utilizate atâta timp cât sunt prezente pe server. Procesul de compilare pentru blocurile numite are loc separat în timpul creării lor ca obiecte de bază de date.

Mai jos sunt câteva caracteristici suplimentare ale blocurilor cu nume.

  • Aceste blocuri pot fi apelate din alte blocuri.
  • Structura blocului este aceeași ca a unui bloc anonim, cu excepția faptului că nu va începe niciodată cu cuvântul cheie „DECLARE”. În schimb, va începe cu cuvântul cheie „CREATE”, care va instrui compilatorului să-l creeze ca obiect de bază de date.
  • Aceste blocuri pot fi imbricate în alte blocuri. Poate conține și blocuri imbricate.
  • Blocurile denumite sunt în principiu de două tipuri:
  1. Procedură
  2. Funcţie

Vom afla mai multe despre aceste blocuri denumite în subiectele „Procedură” și „Funcție” în tutorialul ulterioară.

Rezumat

După acest tutorial, ar trebui să fiți conștienți de blocurile PL/SQL și tipurile acestora, diferitele secțiuni ale blocurilor și utilizările lor. Descrierea detaliată a blocurilor denumite PL/SQL va fi acoperită în tutorialul ulterioară.