Bloc PL/SQL: Structură, Sintaxă și Exemplu Anonim

⚡ Rezumat inteligent

Blocul PL/SQL este unitatea de bază care grupează instrucțiunile PL/SQL și SQL, astfel încât acestea să se execute împreună, nu linie cu linie. Fiecare bloc are o secțiune de declarare, execuție și tratare a excepțiilor, iar blocurile sunt fie anonime, fie denumite.

  • 🧱 Ideea de bază: Code este grupat într-un bloc care rulează ca un întreg, combinând logica procedurală cu SQL.
  • 📝 Secțiunea Declarației: Opțional; declară variabile, cursori, excepții și subprograme utilizate în bloc.
  • ▶ ️ Secțiunea de execuție: Obligatoriu; începe cu BEGIN și conține cel puțin o instrucțiune executabilă.
  • 🛡️ Secțiunea de excepții: Opțional; începe cu EXCEPTION și gestionează erorile de execuție.
  • 🏷️ Două tipuri: Blocurile anonime nu au nume și se execută o singură dată; blocurile denumite sunt stocate ca obiecte ale bazei de date.
  • 🔁 Blocuri denumite: Procedurile și funcțiile sunt blocuri denumite care pot fi apelate în mod repetat.
  • ⛔ terminator: END închide blocul, iar o bară oblică înainte îl trimite la compilator.

Structura și sintaxa blocurilor PL/SQL

Ce este un bloc PL/SQL?

În PL/SQL, codul nu este executat în format pe o singură linie; este întotdeauna executat de grup.ping codul într-un singur element numit bloc. În acest tutorial, veți învăța despre aceste blocuri.

Blocurile conțin atât instrucțiuni PL/SQL, cât și instrucțiuni SQL. Toate aceste instrucțiuni sunt executate ca un întreg, nu pe rând.

Structura blocului

Blocurile PL/SQL au o structură predefinită în care este grupat codul. Mai jos sunt diferitele secțiuni ale unui bloc 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 secțiuni ale blocurilor PL/SQL și ordinea lor.

Secțiuni și ordine de bloc PL/SQL

Sectiunea Declaratii

Aceasta este prima secțiune a unui bloc PL/SQL și este opțională. Este secțiunea în care sunt declarate variabilele, cursorii, excepțiile, subprogramele, instrucțiunile pragma și colecțiile necesare în bloc. 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.
  • Ar trebui să fie prima secțiune dintr-un bloc PL/SQL, dacă există.
  • Începe cu cuvântul cheie „DECLARE” pentru declanșatoare și blocuri anonime. Pentru alte subprograme, acest cuvânt cheie nu este prezent; în schimb, partea de după numele subprogramului marchează secțiunea de declarare.
  • 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 scris în interiorul ei. Întrucât PL / SQL așteaptă instrucțiuni executabile, acest bloc nu poate fi gol și trebuie să aibă cel puțin o linie executabilă validă. Câteva caracteristici suplimentare ale acestei părți:

  • Poate conține atât cod PL/SQL, cât și cod SQL.
  • Poate conține unul sau mai multe blocuri în interiorul său ca blocuri imbricate.
  • Începe cu cuvântul cheie „BEGIN”.
  • Ar trebui să fie urmat fie de „END”, fie de secțiunea de tratare a excepțiilor, dacă există.

Secțiunea de tratare a excepțiilor

Excepțiile sunt erori inevitabile care apar în timpul execuției, iar gestionarea lor Oracle oferă o secțiune de gestionare a excepțiilor în blocuri. Această secțiune poate conține și instrucțiuni PL/SQL și este opțională.

  • Aceasta este secțiunea în care este gestionată o excepție ridicată în blocul de execuție.
  • Este ultima parte a blocului PL/SQL.
  • Controlul din această secțiune nu poate reveni niciodată la blocul de execuție.
  • Începe cu cuvântul cheie „EXCEPȚIE”.
  • 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 blocurilor 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 compilatorului despre sfârșitul blocului.

Tipuri de blocuri PL/SQL

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

  1. Blocuri anonime
  2. Blocuri numite

Cele două sunt comparate rapid mai jos, înainte de a fi descrise fiecare.

Aspect Bloc anonim Bloc denumit
Are un nume Nu Da
Stocat în baza de date Nu Da, ca obiect
Incepe cu DECLARE sau ÎNCEPERE CREATE
Reutilizabile Doar aceeași sesiune Apelabil oricând

Blocuri anonime

Blocurile anonime sunt blocuri PL/SQL cărora nu le este atribuit niciun nume. Acestea trebuie create și utilizate în aceeași sesiune, deoarece nu sunt stocate pe server ca obiecte ale bazei de date.

Deoarece nu sunt stocate în baza de date, nu necesită un pas separat de compilare. Sunt scrise și executate direct, iar compilarea și execuția au loc într-un singur proces. Câteva caracteristici suplimentare:

  • Aceste blocuri nu au nume de referință.
  • Acestea încep cu cuvântul cheie „DECLARE” sau „BEGIN”.
  • Deoarece nu au un nume de referință, nu pot fi stocate pentru utilizare ulterioară și trebuie create și executate în aceeași sesiune.
  • Pot apela alte blocuri denumite, dar un apel către un bloc anonim nu este posibil, deoarece acesta nu are nicio referință.
  • Acestea pot conține un bloc imbricat denumit sau anonim și pot fi, de asemenea, imbricate în interiorul oricărui bloc.
  • Pot avea toate cele trei secțiuni, dintre care secțiunea de execuție este obligatorie, iar celelalte două sunt opționale.

Blocuri numite

Blocurile denumite au un nume specific și unic. Sunt stocate ca obiecte ale bazei de date pe server, astfel încât pot fi consultate sau utilizate atâta timp cât sunt prezente. Procesul de compilare pentru blocurile denumite are loc separat atunci când acestea sunt create ca obiecte ale bazei de date. Câteva caracteristici suplimentare:

  • Aceste blocuri pot fi apelate din alte blocuri.
  • Structura blocului este aceeași ca a unui bloc anonim, cu excepția faptului că nu începe niciodată cu „DECLARE”. În schimb, începe cu „CREATE”, care instruiește compilatorul să îl creeze ca obiect al bazei de date.
  • Aceste blocuri pot fi imbricate în alte blocuri și pot conține, de asemenea, blocuri imbricate.
  • Blocurile denumite sunt în principiu de două tipuri:
  1. Procedură
  2. Funcţie

Puteți afla mai multe despre aceste blocuri denumite în ghidul pentru proceduri și funcții.

Întrebări frecvente

Doar secțiunea de execuție, care începe cu BEGIN și se termină cu END. Secțiunile de declarare și de tratare a excepțiilor sunt opționale și pot fi omise dacă nu sunt necesare.

Un bloc anonim nu are nume, nu este stocat și rulează în aceeași sesiune. Un bloc denumit, cum ar fi o procedură sau o funcție, este stocat ca obiect de bază de date și poate fi apelat în mod repetat.

În instrumente precum SQL*Plus, bara oblică de pe propria linie îi spune compilatorului că blocul este complet și ar trebui rulat. Fără aceasta, instrumentul așteaptă în continuare date de intrare.

Da. Inteligența artificială poate încadra logica într-un antet CREATE PROCEDURE, poate adăuga parametri și poate muta declarațiile la locul lor. Testați rezultatul, deoarece o versiune stocată poate necesita moduri explicite de parametrizare și gestionarea erorilor.

Da. Secțiunile de declarare și excepție sunt opțiuni independente. Un bloc poate începe la BEGIN, poate sări peste declarații și totuși poate include o secțiune EXCEPTION înainte de END pentru a detecta erorile de execuție.

Rezumați această postare cu: