PL/SQL on lohkorakenteinen kieli, jonka avulla kehittäjät voivat yhdistää SQL:n tehon prosessikäskyihin. Kaikki lohkon lausunnot välitetään Oracle-moottorille kerralla, mikä lisää käsittelynopeutta ja vähentää liikennettä.
PL/SQL:n perusteet
- •PL/SQL tarkoittaa SQL (Structured Query Language) -kielen laajennuksia.
- PL/SQL on SQL:n yhdistelmä ohjelmointikielten proseduuriominaisuuksien kanssa.
- Oracle käyttää PL/SQL-moottoria PL/SQL-lauseiden käsittelyyn.
- PL/SQL sisältää proseduurikielielementtejä, kuten ehdot ja silmukat. Se mahdollistaa vakioiden ja muuttujien, menettelyjen ja funktioiden, näiden tyyppien ja muuttujien sekä laukaisimien ilmoittamisen.
SQL:n haitat:
- SQL ei tarjoa ohjelmoijille kunnontarkistus-, silmukka- ja haarautumistekniikkaa.
- SQL-käskyt välitetään Oracle-moottorille yksi kerrallaan, mikä lisää liikennettä ja vähentää nopeutta.
- SQL:llä ei ole mahdollisuutta virheiden tarkistamiseen tietojen käsittelyn aikana.
PL/SQL:n ominaisuudet:
- PL/SQL on pohjimmiltaan proseduurikieli, joka tarjoaa päätöksenteon, iteroinnin ja monia muita proseduuriohjelmointikielten ominaisuuksia.
- PL/SQL voi suorittaa useita kyselyjä yhdessä lohkossa yhdellä komennolla.
- Voidaan luoda PL/SQL-yksikkö, kuten proseduurit, funktiot, paketit, triggerit ja tyypit, jotka tallennetaan tietokantaan sovellusten uudelleenkäyttöä varten.
- PL/SQL tarjoaa toiminnon PL/SQL-lohkossa esiintyvän poikkeuksen käsittelemiseksi, joka tunnetaan nimellä poikkeuskäsittelylohko.
- PL/SQL-kielellä kirjoitetut sovellukset voidaan siirtää tietokonelaitteistoon tai käyttöjärjestelmään, jossa Oracle toimii.
- PL/SQL Tarjoaa laajan virheentarkistuksen.
SQL:n ja PL/SQL:n erot:
| SQL | PL/SQL |
| SQL on yksittäinen kysely, jota käytetään DML- ja DDL-toimintojen suorittamiseen. | PL/SQL on koodilohko, jolla kirjoitettiin kaikki ohjelmalohkot/menettely/funktio jne. |
| Se on deklaratiivinen, joka määrittelee, mitä on tehtävä, eikä miten asiat on tehtävä. | PL/SQL on proseduuri, joka määrittää, miten asiat on tehtävä. |
| Suorita yhtenä lauseena. | Suorita kokonaisena lohkona. |
| Käytetään pääasiassa tietojen käsittelyyn. | Käytetään pääasiassa sovelluksen luomiseen. |
| Se ei voi sisältää PL/SQL-koodia. | Se on SQL:n laajennus, joten se voi sisältää SQL:n. |
PL/SQL-lohkon rakenne:
merkkijono json-objektiin
PL/SQL laajentaa SQL:ää lisäämällä proseduurikielistä löytyviä rakenteita, mikä johtaa rakenteelliseen kieleen, joka on tehokkaampi kuin SQL. PL/SQL:n perusyksikkö on lohko. Kaikki PL/SQL-ohjelmat koostuvat lohkoista, jotka voidaan upottaa toistensa sisään.
Tyypillisesti jokainen lohko suorittaa loogisen toiminnon ohjelmassa. Lohkolla on seuraava rakenne:
DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
- Ilmoita-osio alkaa JULISTAA avainsana, jossa muuttujat, vakiot, tietueet voidaan ilmoittaa kohdistimiksi, joka tallentaa tiedot väliaikaisesti. Se koostuu pohjimmiltaan PL/SQL-tunnisteiden määrittelystä. Tämä koodin osa on valinnainen.
- Toteutusosio alkaa ALKAA ja päättyy LOPPU avainsana. Tämä on pakollinen osio, ja tässä ohjelman logiikka on kirjoitettu suorittamaan mitä tahansa tehtäviä, kuten silmukoita ja ehdollisia lausekkeita. Se tukee kaikkia DML käskyt, DDL komennot ja sisäänrakennetut SQL*PLUS-toiminnot.
- Poikkeusosio alkaa POIKKEUS avainsana. Tämä osio on valinnainen, ja se sisältää käskyt, jotka suoritetaan, kun ajonaikainen virhe tapahtuu. Kaikki poikkeukset voidaan käsitellä tässä osiossa.
PL/SQL-tunnisteet
On olemassa useita PL/SQL-tunnisteita, kuten muuttujia, vakioita, proseduureja, kohdistimia, laukaisimia jne.
- Muuttujat : Kuten useat muutkin ohjelmointikielet, PL/SQL:n muuttujat on ilmoitettava ennen sen käyttöä. Niillä tulee olla myös kelvollinen nimi ja tietotyyppi. Syntaksi muuttujien ilmoittamiselle:
variable_name datatype [NOT NULL := value ];>
- Esimerkki muuttujien ilmoittamisesta PL/SQL:ssä:
C
SQL>SET SERVEROUTPUT ON;> SQL>ILMOITTAA> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> /> |
>
>
- Lähtö:
PL/SQL procedure successfully completed.>
- Selitys:
- ASETA PALVELULÄHTÖ PÄÄLLE : Sitä käytetään dbms_outputin käyttämän puskurin näyttämiseen.
- var1 INTEGER : Se on nimetty muuttujan ilmoitus var1 joka on kokonaislukutyyppiä. On olemassa monia muita tietotyyppejä, joita voidaan käyttää, kuten float, int, real, smallint, long jne. Se tukee myös SQL:ssä käytettyjä muuttujia sekä kuten NUMBER (prec, scale), varchar, varchar2 jne.
- PL/SQL-prosessi suoritettu onnistuneesti.: Se näytetään, kun koodi on käännetty ja suoritettu onnistuneesti.
- Kenoviiva (/) END:n jälkeen;: Kenoviiva (/) käskee SQL*Plus:n suorittamaan lohkon.
- Tehtäväoperaattori (:=) : Sitä käytetään arvon määrittämiseen muuttujalle.
- Näytetään lähtö : Lähdöt näytetään käyttämällä DBMS_OUTPUT-pakettia, joka on sisäänrakennettu paketti, jonka avulla käyttäjä voi näyttää tulosteita, virheenkorjaustietoja ja lähettää viestejä PL/SQL-lohkoista, aliohjelmista, paketeista ja laukaisimista. Katsotaanpa esimerkkiä nähdäksesi kuinka viesti näytetään PL/SQL:llä:
C
ohjelmointi c-taulukoissa
pituus merkkijono
SQL>SET SERVEROUTPUT ON;> SQL>ILMOITTAA> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/> |
>
>
- Lähtö:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
- Selitys:
- dbms_output.put_line : Tätä komentoa käytetään ohjaamaan PL/SQL-tulostus näyttöön.
- Kommenttien käyttäminen : Kuten monissa muissakin ohjelmointikielissä, myös PL/SQL:ssä koodiin voidaan laittaa kommentteja, joilla ei ole vaikutusta koodiin. Kommenttien luomiseen PL/SQL:ssä on kaksi syntaksia:
- Yksirivinen kommentti: Jos haluat luoda yhden rivin kommentin , symboli– –käytetään.
- Monirivinen kommentti: Jos haluat luoda kommentteja, jotka ulottuvat useille riveille, symboli/*ja*/käytetään.
- Otetaan syötteitä käyttäjältä : Kuten muissakin ohjelmointikielissä, myös PL/SQL:ssä voimme ottaa syötteen käyttäjältä ja tallentaa sen muuttujaan. Katsotaanpa esimerkkiä, joka näyttää, kuinka syöte otetaan käyttäjiltä PL/SQL:ssä:
C
cast string int java
SQL>SET SERVEROUTPUT ON;> SQL>ILMOITTAA> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/> |
>
>
- Lähtö:
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.>
- (***) Katsotaanpa esimerkkiä PL/SQL:stä kaikkien edellä mainittujen käsitteiden havainnollistamiseksi yhdessä koodilohkossa.
C
shreya ghoshal ensimmäinen aviomies
--PL/SQL code to print sum of two numbers taken from the user.> SQL>ASETA PALVELINLÄHTÖ PÄÄLLE;> SQL>ILMOITTAA> > >-- 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-suoritusympäristö:
PL/SQL-moottori sijaitsee Oracle-moottorissa. Oracle-moottori voi käsitellä yksittäisen SQL-lauseen lisäksi myös useiden lausekkeiden lohkon.Kutsu Oracle-moottoriin on tehtävä vain kerran, jotta voidaan suorittaa minkä tahansa määrän SQL-lauseita, jos nämä SQL-lauseet ovat on niputettu PL/SQL-lohkoon.