logo

PL/SQL Uvod

PL/SQL je blokovno strukturiran jezik, ki razvijalcem omogoča združevanje moči SQL s proceduralnimi stavki. Vsi stavki bloka se naenkrat posredujejo motorju Oracle, kar poveča hitrost obdelave in zmanjša promet.

Osnove PL/SQL

  • • PL/SQL pomeni razširitve proceduralnega jezika za jezik strukturiranih poizvedb (SQL).
  • PL/SQL je kombinacija SQL skupaj s proceduralnimi lastnostmi programskih jezikov.
  • Oracle uporablja mehanizem PL/SQL za obdelavo stavkov PL/SQL.
  • PL/SQL vključuje elemente proceduralnega jezika, kot so pogoji in zanke. Omogoča deklaracijo konstant in spremenljivk, procedur in funkcij, vrst in spremenljivk teh vrst ter sprožilcev.

Slabosti SQL:



  • SQL programerjem ne nudi tehnike preverjanja pogojev, zank in razvejanja.
  • Stavki SQL se posredujejo mehanizmu Oracle enega za drugim, kar poveča promet in zmanjša hitrost.
  • SQL nima možnosti preverjanja napak med manipulacijo podatkov.

Lastnosti PL/SQL:

  1. PL/SQL je v bistvu proceduralni jezik, ki zagotavlja funkcionalnost odločanja, iteracije in številne druge funkcije proceduralnih programskih jezikov.
  2. PL/SQL lahko z enim samim ukazom izvede več poizvedb v enem bloku.
  3. Ustvarite lahko enoto PL/SQL, kot so procedure, funkcije, paketi, sprožilci in tipi, ki so shranjeni v bazi podatkov za ponovno uporabo s strani aplikacij.
  4. PL/SQL ponuja funkcijo za obravnavo izjeme, ki se pojavi v bloku PL/SQL, znanem kot blok za obravnavo izjem.
  5. Aplikacije, napisane v PL/SQL, so prenosljive na računalniško strojno opremo ali operacijski sistem, kjer deluje Oracle.
  6. PL/SQL Ponuja obsežno preverjanje napak.

Razlike med SQL in PL/SQL:

SQL PL/SQL
SQL je ena poizvedba, ki se uporablja za izvajanje operacij DML in DDL. PL/SQL je blok kod, ki je bil uporabljen za pisanje celotnih programskih blokov/postopkov/funkcij itd.
Je deklarativno, ki opredeljuje, kaj je treba storiti, ne pa, kako je treba stvari narediti. PL/SQL je postopek, ki določa, kako je treba stvari narediti.
Izvedite kot en stavek. Izvedite kot celoten blok.
Uporablja se predvsem za manipulacijo podatkov. Uporablja se predvsem za ustvarjanje aplikacije.
Ne sme vsebovati kode PL/SQL. Je razširitev SQL, zato lahko v sebi vsebuje SQL.

Struktura bloka PL/SQL:



razvrščanje tulp python

PL/SQL razširja SQL z dodajanjem konstruktov, ki jih najdemo v proceduralnih jezikih, kar ima za posledico strukturni jezik, ki je močnejši od SQL. Osnovna enota v PL/SQL je blok. Vsi programi PL/SQL so sestavljeni iz blokov, ki jih je mogoče ugnezditi drug v drugega.

Običajno vsak blok izvede logično dejanje v programu. Blok ima naslednjo strukturo:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • Razdelek Declare se začne z IZJAVA ključna beseda, v kateri je mogoče deklarirati spremenljivke, konstante, zapise kot kazalce, ki začasno shrani podatke. V bistvu je sestavljen iz definicije identifikatorjev PL/SQL. Ta del kode ni obvezen.
  • Oddelek za izvedbo se začne z ZAČETI in se konča z KONEC ključna beseda. To je obvezen razdelek in tukaj je zapisana programska logika za izvajanje katere koli naloge, kot so zanke in pogojni stavki. Podpira vse DML ukazi, DDL ukaze in vgrajene funkcije SQL*PLUS.
  • Razdelek o izjemah se začne z IZJEMA ključna beseda. Ta razdelek je neobvezen in vsebuje stavke, ki se izvedejo, ko pride do napake med izvajanjem. Vse izjeme je mogoče obravnavati v tem razdelku.

Identifikatorji PL/SQL

Obstaja več identifikatorjev PL/SQL, kot so spremenljivke, konstante, procedure, kazalci, sprožilci itd.



  1. Spremenljivke : Kot v številnih drugih programskih jezikih je treba spremenljivke v PL/SQL deklarirati pred uporabo. Imeti morajo tudi veljavno ime in vrsto podatkov. Sintaksa za deklaracijo spremenljivk:
variable_name datatype [NOT NULL := value ];>
  1. Primer, ki prikazuje, kako deklarirati spremenljivke v PL/SQL:

C




SQL>NASTAVITE SERVEROUTPUT ON;> SQL>PRIJAVITE>> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Izhod:
PL/SQL procedure successfully completed.>
  1. Pojasnilo:
    • NASTAVITE SERVEROUTPUT ON : Uporablja se za prikaz medpomnilnika, ki ga uporablja dbms_output.
    • var1 CELO ŠTEVILO: Je deklaracija spremenljivke, imenovane var1 ki je celoštevilskega tipa. Obstaja veliko drugih vrst podatkov, ki jih je mogoče uporabiti, kot so float, int, real, smallint, long itd. Podpira tudi spremenljivke, ki se uporabljajo v SQL, kot so NUMBER(prec, scale), varchar, varchar2 itd.
    • Postopek PL/SQL uspešno zaključen.: Prikaže se, ko je koda uspešno prevedena in izvedena.
    • Poševnica (/) za END;: Poševnica (/) pove SQL*Plus, naj izvede blok.
    • Operator dodelitve (:=) : Uporablja se za dodelitev vrednosti spremenljivki.
  2. Prikaz izhoda : Izhodi so prikazani z uporabo DBMS_OUTPUT, ki je vgrajen paket, ki uporabniku omogoča prikaz izhoda, informacij o odpravljanju napak in pošiljanje sporočil iz blokov PL/SQL, podprogramov, paketov in sprožilcev. Oglejmo si primer, da vidimo, kako prikazati sporočilo z uporabo PL/SQL:

C

anonimna funkcija java


np ničle



SQL>NASTAVITE SERVEROUTPUT ON;> SQL>PRIJAVITE>> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Izhod:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Pojasnilo:
    • dbms_output.put_line : Ta ukaz se uporablja za usmerjanje izhoda PL/SQL na zaslon.
  2. Uporaba komentarjev : Tako kot v mnogih drugih programskih jezikih je tudi v PL/SQL mogoče v kodo vnesti komentarje, ki nimajo učinka na kodo. Obstajata dve sintaksi za ustvarjanje komentarjev v PL/SQL:
    • Enovrstični komentar: Če želite ustvariti enovrstični komentar, simbol– –se uporablja.
    • Večvrstični komentar: Če želite ustvariti komentarje, ki segajo čez več vrstic, simbol/*in*/se uporablja.
  3. Sprejem vnosa od uporabnika : Tako kot v drugih programskih jezikih lahko tudi v PL/SQL vzamemo vnos od uporabnika in ga shranimo v spremenljivko. Oglejmo si primer, ki prikazuje, kako sprejemati vnose uporabnikov v PL/SQL:

C

inkscape proti gimp




SQL>NASTAVITE SERVEROUTPUT ON;> SQL>PRIJAVITE>> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Izhod:
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. (***) Oglejmo si primer PL/SQL, da prikažemo vse zgornje koncepte v enem samem bloku kode.

C

niz predolg




--PL/SQL code to print sum of two numbers taken from the user.> SQL>NASTAVITE SERVEROUTPUT ON;> SQL>PRIJAVITE>> > >-- 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.>

Izvajalno okolje PL/SQL:

Mehanizem PL/SQL se nahaja v motorju Oracle. Mehanizem Oracle lahko obdeluje ne samo en sam stavek SQL, ampak tudi blok številnih stavkov. Klic motorju Oracle je treba opraviti samo enkrat, da se izvede poljubno število stavkov SQL, če ti stavki SQL so združeni znotraj bloka PL/SQL.