logo

Introducere PL/SQL

PL/SQL este un limbaj structurat în bloc care le permite dezvoltatorilor să combine puterea SQL cu instrucțiunile procedurale. Toate instrucțiunile unui bloc sunt transmise motorului Oracle dintr-o dată, ceea ce crește viteza de procesare și scade traficul.

Bazele PL/SQL

  • •PL/SQL reprezintă extensii de limbaj procedural pentru limbajul de interogare structurat (SQL).
  • PL/SQL este o combinație de SQL împreună cu caracteristicile procedurale ale limbajelor de programare.
  • Oracle folosește un motor PL/SQL pentru a procesa instrucțiunile PL/SQL.
  • PL/SQL include elemente de limbaj procedural precum condiții și bucle. Permite declararea de constante și variabile, proceduri și funcții, tipuri și variabile ale acelor tipuri și declanșatoare.

Dezavantajele SQL:



  • SQL nu oferă programatorilor o tehnică de verificare a condițiilor, buclă și ramificare.
  • Instrucțiunile SQL sunt transmise motorului Oracle pe rând, ceea ce crește traficul și scade viteza.
  • SQL nu are nicio facilitate de verificare a erorilor în timpul manipulării datelor.

Caracteristicile PL/SQL:

  1. PL/SQL este practic un limbaj procedural, care oferă funcționalitatea de luare a deciziilor, iterație și multe alte caracteristici ale limbajelor de programare procedurală.
  2. PL/SQL poate executa un număr de interogări într-un singur bloc folosind o singură comandă.
  3. Se poate crea o unitate PL/SQL, cum ar fi proceduri, funcții, pachete, declanșatoare și tipuri, care sunt stocate în baza de date pentru reutilizare de către aplicații.
  4. PL/SQL oferă o caracteristică pentru a gestiona excepția care apare în blocul PL/SQL cunoscut sub numele de bloc de gestionare a excepțiilor.
  5. Aplicațiile scrise în PL/SQL sunt portabile pe hardware-ul computerului sau pe sistemul de operare în care Oracle este operațional.
  6. PL/SQL Oferă verificare extinsă a erorilor.

Diferențele dintre SQL și PL/SQL:

SQL PL/SQL
SQL este o singură interogare care este utilizată pentru a efectua operațiuni DML și DDL. PL/SQL este un bloc de coduri care a folosit pentru a scrie întregul program blocuri/procedură/funcție etc.
Este declarativ, care definește ce trebuie făcut, mai degrabă decât modul în care trebuie făcute lucrurile. PL/SQL este procedural care definește modul în care lucrurile trebuie făcute.
Executați ca o singură instrucțiune. Executați ca un întreg bloc.
Folosit în principal pentru manipularea datelor. Folosit în principal pentru a crea o aplicație.
Nu poate conține cod PL/SQL în el. Este o extensie a SQL, deci poate conține SQL în interiorul ei.

Structura blocului PL/SQL:



PL/SQL extinde SQL prin adăugarea de constructe găsite în limbaje procedurale, rezultând un limbaj structural care este mai puternic decât SQL. Unitatea de bază în PL/SQL este un bloc. Toate programele PL/SQL sunt formate din blocuri, care pot fi imbricate unul în celălalt.

De obicei, fiecare bloc efectuează o acțiune logică în program. Un bloc are următoarea structură:

conversie șir în int în java
 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • Secțiunea Declarare începe cu DECLARA cuvânt cheie în care pot fi declarate variabile, constante, înregistrări ca cursoare care stochează datele temporar. Practic, constă în definirea identificatorilor PL/SQL. Această parte a codului este opțională.
  • Secțiunea de execuție începe cu ÎNCEPE si se termina cu Sfârşit cuvânt cheie. Aceasta este o secțiune obligatorie și aici logica programului este scrisă pentru a îndeplini orice sarcină, cum ar fi bucle și instrucțiuni condiționale. Susține toate DML comenzi, DDL comenzi și funcții încorporate SQL*PLUS, de asemenea.
  • Secțiunea de excepții începe cu EXCEPȚIE cuvânt cheie. Această secțiune este opțională și conține instrucțiuni care sunt executate atunci când apare o eroare de rulare. Orice excepție poate fi tratată în această secțiune.

identificatori PL/SQL

Există mai mulți identificatori PL/SQL, cum ar fi variabile, constante, proceduri, cursore, declanșatoare etc.



  1. Variabile : La fel ca multe alte limbaje de programare, variabilele din PL/SQL trebuie declarate înainte de utilizare. Ar trebui să aibă, de asemenea, un nume și un tip de date valide. Sintaxa pentru declararea variabilelor:
variable_name datatype [NOT NULL := value ];>
  1. Exemplu pentru a arăta cum se declară variabile în PL/SQL:

C




SQL>ACTIVATĂ IEȘIREA SERVERULUI;> SQL>DECLARE> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Ieșire:
PL/SQL procedure successfully completed.>
  1. Explicaţie:
    • ACTIVATĂ IEȘIREA SERVERULUI : este folosit pentru a afișa buffer-ul utilizat de dbms_output.
    • var1 INTEGER : Este declarația de variabilă, numită var1 care este de tip întreg. Există multe alte tipuri de date care pot fi folosite, cum ar fi float, int, real, smallint, long etc. De asemenea, acceptă variabile utilizate în SQL, precum NUMBER(prec, scale), varchar, varchar2 etc.
    • Procedura PL/SQL finalizată cu succes.: Este afișat când codul este compilat și executat cu succes.
    • Slash (/) după END;: Bara oblică (/) îi spune SQL*Plus să execute blocul.
    • Operator de atribuire (:=) : este folosit pentru a atribui o valoare unei variabile.
  2. Afișarea ieșirii : Ieșirile sunt afișate folosind DBMS_OUTPUT, care este un pachet încorporat care permite utilizatorului să afișeze informații de ieșire, depanare și să trimită mesaje din blocuri PL/SQL, subprograme, pachete și declanșatoare. Să vedem un exemplu pentru a vedea cum să afișați un mesaj folosind PL/SQL:

C




SQL>ACTIVATĂ IEȘIREA SERVERULUI;> SQL>DECLARE> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Ieșire:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Explicaţie:
    • dbms_output.put_line : Această comandă este folosită pentru a direcționa ieșirea PL/SQL către un ecran.
  2. Utilizarea comentariilor : Ca și în multe alte limbaje de programare, și în PL/SQL, comentariile pot fi introduse în cod, care nu are efect în cod. Există două sintaxe pentru a crea comentarii în PL/SQL:
    • Comentariu pe o singură linie: Pentru a crea un comentariu pe o singură linie, simbolul– –este folosit.
    • Comentariu pe mai multe rânduri: Pentru a crea comentarii care se întind pe mai multe rânduri, simbolul/*și*/este folosit.
  3. Preluarea datelor de la utilizator : La fel ca în alte limbaje de programare, și în PL/SQL, putem prelua intrarea de la utilizator și o stocăm într-o variabilă. Să vedem un exemplu pentru a arăta cum să preluăm input de la utilizatori în PL/SQL:

C


cum se concatenează șiruri în java



SQL>ACTIVATĂ IEȘIREA SERVERULUI;> SQL>DECLARE> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Ieșire:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
  1. (***) Să vedem un exemplu pe PL/SQL pentru a demonstra toate conceptele de mai sus într-un singur bloc de cod.

C




--PL/SQL code to print sum of two numbers taken from the user.> SQL>ACTIVATĂ IEȘIREA SERVERULUI;> SQL>DECLARE> > >-- taking input>for> variable a> >a integer := &a ;> > >-- taking input>for> variable b> >b integer := &b ;> >c integer ;> >BEGIN> >c := a + b ;> >dbms_output.put_line(>'Sum of '>||a||>' and '>||b||>' is = '>||c);> >END;> >/>

>

>

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>

Mediu de execuție PL/SQL:

Motorul PL/SQL se află în motorul Oracle. Motorul Oracle poate procesa nu numai o singură instrucțiune SQL, ci și bloc de mai multe instrucțiuni. Apelul la motorul Oracle trebuie făcut o singură dată pentru a executa orice număr de instrucțiuni SQL dacă aceste instrucțiuni SQL sunt incluse într-un bloc PL/SQL.