logo

PL/SQL įvadas

PL/SQL yra blokinė struktūrinė kalba, leidžianti kūrėjams sujungti SQL galią su procedūriniais pareiškimais. Visi bloko teiginiai perduodami Oracle varikliui vienu metu, o tai padidina apdorojimo greitį ir sumažina srautą.

PL/SQL pagrindai

  • •PL/SQL reiškia struktūrinės užklausos kalbos (SQL) procedūrinės kalbos plėtinius.
  • PL/SQL yra SQL derinys kartu su procedūrinėmis programavimo kalbų ypatybėmis.
  • „Oracle“ naudoja PL/SQL variklį, kad apdorotų PL/SQL sakinius.
  • PL/SQL apima procedūrinius kalbos elementus, tokius kaip sąlygos ir ciklai. Tai leidžia deklaruoti konstantas ir kintamuosius, procedūras ir funkcijas, šių tipų tipus ir kintamuosius bei trigerius.

SQL trūkumai:



  • SQL nesuteikia programuotojams būklės tikrinimo, kilpų sudarymo ir šakojimo technikos.
  • SQL sakiniai perduodami Oracle varikliui po vieną, o tai padidina srautą ir sumažina greitį.
  • SQL neturi galimybės tikrinti klaidų manipuliuojant duomenimis.

PL/SQL savybės:

  1. PL/SQL iš esmės yra procedūrinė kalba, kuri suteikia sprendimų priėmimo, iteracijos ir daug kitų procedūrinių programavimo kalbų funkcijų.
  2. PL/SQL gali vykdyti daugybę užklausų viename bloke naudodamas vieną komandą.
  3. Galima sukurti PL/SQL vienetą, pvz., procedūras, funkcijas, paketus, trigerius ir tipus, kurie saugomi duomenų bazėje, kad programos galėtų pakartotinai naudoti.
  4. PL/SQL suteikia galimybę tvarkyti išimtį, kuri atsiranda PL/SQL bloke, žinoma kaip išimčių tvarkymo blokas.
  5. Programos, parašytos PL/SQL kalba, yra nešiojamos į kompiuterio aparatinę įrangą arba operacinę sistemą, kurioje veikia „Oracle“.
  6. PL/SQL siūlo platų klaidų tikrinimą.

SQL ir PL/SQL skirtumai:

SQL PL/SQL
SQL yra viena užklausa, naudojama DML ir DDL operacijoms atlikti. PL / SQL yra kodų blokas, naudojamas visiems programos blokams / procedūrai / funkcijai ir kt.
Jis yra deklaratyvus, kuris apibrėžia, ką reikia padaryti, o ne kaip reikia daryti. PL/SQL yra procedūrinė, kuri apibrėžia, kaip reikia atlikti veiksmus.
Vykdykite kaip vieną pareiškimą. Vykdykite kaip visą bloką.
Daugiausia naudojamas manipuliuoti duomenimis. Dažniausiai naudojamas kuriant programą.
Jame negali būti PL/SQL kodo. Tai yra SQL plėtinys, todėl jame gali būti SQL.

PL/SQL bloko struktūra:



css kraštinė

PL/SQL išplečia SQL pridedant procedūrinių kalbų konstrukcijų, todėl struktūrinė kalba yra galingesnė už SQL. Pagrindinis PL/SQL vienetas yra blokas. Visos PL/SQL programos yra sudarytos iš blokų, kurie gali būti įdėti vienas į kitą.

Paprastai kiekvienas blokas programoje atlieka loginį veiksmą. Blokas turi tokią struktūrą:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • Deklaruoti skiltis prasideda DEKLARUOTI raktažodis, kuriame kintamieji, konstantos, įrašai gali būti deklaruojami kaip žymekliai, kurie laikinai saugo duomenis. Iš esmės jį sudaro PL/SQL identifikatorių apibrėžimas. Ši kodo dalis yra neprivaloma.
  • Vykdymo skyrius prasideda nuo PRADĖTI ir baigiasi GALAS raktinis žodis. Tai yra privalomas skyrius ir čia parašyta programos logika, kad būtų galima atlikti bet kokią užduotį, pvz., kilpas ir sąlyginius sakinius. Tai palaiko visus DML komandos, DDL komandos ir SQL*PLUS integruotos funkcijos.
  • Išimčių skyrius prasideda nuo IŠIMTIS raktinis žodis.Šis skyrius yra neprivalomas, kuriame yra teiginių, kurie vykdomi, kai įvyksta vykdymo klaida. Šiame skyriuje gali būti aptariamos visos išimtys.

PL/SQL identifikatoriai

Yra keletas PL/SQL identifikatorių, tokių kaip kintamieji, konstantos, procedūros, žymekliai, trigeriai ir kt.



  1. Kintamieji : kaip ir keliose kitose programavimo kalbose, PL/SQL kintamieji turi būti deklaruoti prieš naudojant. Jie taip pat turėtų turėti galiojantį pavadinimą ir duomenų tipą. Kintamųjų deklaravimo sintaksė:
variable_name datatype [NOT NULL := value ];>
  1. Pavyzdys, rodantis, kaip deklaruoti kintamuosius PL/SQL:

C




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

>

>

  1. Išvestis:
PL/SQL procedure successfully completed.>
  1. Paaiškinimas:
    • NUSTATYTI SERVERIO IŠVESTĮ : Naudojamas buferiui, kurį naudoja dbms_output, rodyti.
    • var1 INTEGER : Tai kintamojo, pavadinto, deklaracija var1 kuris yra sveikojo skaičiaus tipo. Yra daug kitų duomenų tipų, kuriuos galima naudoti, pvz., float, int, real, smallint, long ir tt Jis taip pat palaiko kintamuosius, naudojamus SQL, taip pat NUMBER (prec, scale), varchar, varchar2 ir kt.
    • PL/SQL procedūra sėkmingai baigta.: Jis rodomas, kai kodas sukompiliuojamas ir sėkmingai vykdomas.
    • Pasvirasis brūkšnys (/) po END;: Pasvirasis brūkšnys (/) nurodo SQL*Plus vykdyti bloką.
    • Priskyrimo operatorius (:=) : naudojamas kintamajam priskirti reikšmę.
  2. Rodoma išvestis : Išėjimai rodomi naudojant DBMS_OUTPUT, kuris yra integruotas paketas, leidžiantis vartotojui rodyti išvestį, derinimo informaciją ir siųsti pranešimus iš PL/SQL blokų, paprogramių, paketų ir trigerių. Pažiūrėkime pavyzdį, kaip parodyti pranešimą naudojant PL/SQL:

C


j e s t



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

>

>

  1. Išvestis:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Paaiškinimas:
    • dbms_output.put_line : Ši komanda naudojama nukreipti PL/SQL išvestį į ekraną.
  2. Naudojant komentarus : Kaip ir daugelyje kitų programavimo kalbų, PL/SQL taip pat gali būti komentarai į kodą, o tai neturi įtakos kode. Yra dvi sintaksės komentarams kurti PL/SQL:
    • Vienos eilutės komentaras: Norėdami sukurti vienos eilutės komentarą, simbolis– –yra naudojamas.
    • Kelių eilučių komentaras: Norėdami sukurti komentarus, apimančius kelias eilutes, simbolis/*ir*/yra naudojamas.
  3. Priimama vartotojo įvestis : Kaip ir kitose programavimo kalbose, PL/SQL taip pat galime priimti įvestį iš vartotojo ir išsaugoti ją kintamajame. Pažiūrėkime pavyzdį, kaip paimti įvestis iš vartotojų PL/SQL:

C




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

>

>

  1. Išvestis:
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. (***) Pažiūrėkime pavyzdį apie PL/SQL, kad parodytume visas aukščiau pateiktas sąvokas viename kodo bloke.

C




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

PL/SQL vykdymo aplinka:

PL/SQL modulis yra „Oracle“ variklyje. „Oracle“ variklis gali apdoroti ne tik vieną SQL sakinį, bet ir daugelio teiginių bloką. „Oracle“ variklio iškvietimas turi būti atliktas tik vieną kartą, kad būtų įvykdytas bet koks skaičius SQL sakinių, jei šie SQL sakiniai yra sujungti į PL/SQL bloką.