PL / SQL on menettelykieli, joka korjaa kohtaamansa puutteet Jäsennelty kyselykieli . Se on SQL: n laajennus ja voimme jopa käyttää SQL-kyselyjä vaivattomasti missään PL / SQL-sovelluksessa tai ohjelmassa. Tässä PL / SQL-opetusohjelmassa käymme läpi yksityiskohtaisesti PL / SQL: n peruskäsitteet. Tässä artikkelissa käsitellään seuraavia aiheita.
- Mikä on PL / SQL?
- Estä rakenteet PL / SQL: ssä
- PL / SQL-muuttujat
- Toiminto PL / SQL: ssä
- PL / SQL-menettely
- Sisäkkäinen esto
- IF-lausunto
- CASE-lausunto
- Silmukka-ilmoitus
- Poikkeuksellinen käsittely
Mikä on PL / SQL?
Se tarkoittaa menettelykielen laajennusta jäsennelty kyselyn kieli . Oracle loi PL / SQL: n, joka laajentaa joitain SQL-rajoituksia tarjotakseen kattavamman ratkaisun Oracle-ohjelmassa toimivien kriittisten sovellusten rakentamiseen .
ominaisuudet
PL / SQL tarjoaa prosessikielen, kuten päätöksenteon, iteroinnin jne., Toiminnallisuuden.
Yhden komennon avulla PL / SQL voi suorittaa useita kyselyjä.
Voimme myös käyttää uudelleen PL / SQL-yksiköitä, kuten toimintoja, laukaisimia, menettelyjä jne., Jotka on tallennettu tietokantaan luomisen jälkeen.
PL / SQL: ssä on myös poikkeusten käsittelylohko, joka käsittelee PL / SQL: n poikkeukset.
Laaja virheiden tarkistus on mahdollista myös PL / SQL: n avulla
PL / SQL-muodossa kirjoitetut sovellukset ovat kannettavia muihin laitteistoihin ja käyttöjärjestelmiin edellyttäen, että oraclen on oltava toiminnassa.
PL / SQL vs. SQL
SQL | PL / SQL |
SQL on yksittäinen kysely, jota käytetään DDL- ja DML-operaatioiden suorittamiseen | PL / SQL on koodilohko, jota käytetään määrittelemään koko ohjelma tai toiminto / toiminto jne |
Siinä ei oikeastaan määritellä, miten asiat on tehtävä, vaan määritellään, mitä on tehtävä | PL / SQL määrittelee, miten asiat on tehtävä |
Se suorittaa yhden lauseen | Se suorittaa lausejoukon kerralla. |
SQL: ää käytetään pääasiassa tietojen manipulointiin | PL / SQL: ää käytetään toisaalta sovellusten luomiseen |
Se ei voi sisältää PL / SQL-koodia | Koska se on SQL-laajennus, se voi sisältää siinä SQL-koodin |
Estä rakenteet PL / SQL: ssä
PL / SQL järjestää koodin tyypillisesti lohkoiksi. Koodilohko ilman nimeä tunnetaan nimettömänä lohkona. Se tunnetaan nimettömänä estona, koska sitä ei ole tallennettu Oracle-tietokantaan. Katsotaanpa anonyymi lohko PL / SQL: ssä.
[DECLARE] -lausekkeet [BEGIN] suorituslausekkeet [EXCEPTION] -poikkeuslausekkeet END /
Yllä olevaa kaaviota tarkasteltaessa voidaan nähdä, että lohkorakenne on jaettu neljään osaan, toisin sanoen ilmoitukseen, alkuun, poikkeukseen ja loppuun. Yritetään ymmärtää, miten lohkorakenne toimii PL / SQL: ssä. Kaikista näistä osista suoritusosa on pakollinen ja loput ovat valinnaisia.
JULISTAA avainsanalla käytetään ilmoitusta varten, jota käytetään ilmoittamaan tietotyypit ja rakenteet, kuten muuttujat, toiminnot jne.
ALKAA avainsanaa käytetään suoritusosassa. Se on pakollinen ja sisältää kaikki suoritettavat lausekkeet. Tässä lohkossa määritetään liiketoimintalogiikka, voimme käyttää tässä lohkossa sekä menettely- että SQL-käskyjä.
POIKKEUS avainsanaa käytetään poikkeusosassa. Se sisältää kaikki poikkeuslausekkeet.
LOPPU avainsana merkitsee lohkon loppua ja taaksepäin viiva ‘/’ kertoo työkalulle, jota käytät (Oracle Database Tool) PL / SQL-lohkon suorittamiseen.
Tässä on yksinkertainen esimerkki siitä, kuinka voimme käyttää PL / SQL-koodia.
ALOITA NULL LOPPU /
Nyt kun tiedämme, kuinka lohkorakenne toimii PL / SQL: ssä, ymmärretään PL / SQL: n eri näkökohtia, kuten arvojen ilmoittaminen, nimeäminen ja muuttujien määrittäminen.
PL / SQL-muuttujat
Muuttuja PL / SQL: ssä on pohjimmiltaan nimi, joka vaihtelee tai väliaikainen tallennustila, joka tukee tiettyä tietotyyppiä. Katsotaanpa, kuinka voimme käyttää muuttujia PL / SQL-ohjelmassa.
Muuttujien nimeämissäännöt
PL / SQL noudattaa seuraavia sääntöjä muuttujien nimeämisessä.
Muuttuja saa olla enintään 31 merkkiä
Muuttujan nimen tulisi alkaa ASCII-merkillä. Koska PL / SQL erottaa isot ja pienet kirjaimet, isot ja pienet kirjaimet ovat erilaisia muuttujia.
Ensimmäisen merkin jälkeen on oltava erikoismerkki ($, _) tai mikä tahansa numero.
Yleissopimusten nimeäminen
Käytä muuttujia käyttämällä seuraavia alla lueteltuja nimeämiskäytäntöjä.
Etuliite | Tietotyyppi |
v_ | VARCHAR2 |
n_ | MÄÄRÄ |
t_ | PÖYTÄ |
r_ | RIVI |
d_ | PÄIVÄMÄÄRÄ |
b_ | BOOLEN |
Julistus
Yritetään ymmärtää, kuinka muuttujailmoitus tehdään PL / SQL: ssä
Ilmoitus sisältää muuttujan nimen, jota seuraa tietotyyppi ja erotettu puolipisteellä. Seuraava esimerkki osoittaa, kuinka muuttuja voidaan ilmoittaa PL / SQL: ssä.
ILMOITA v_name VARCHAR (25) n_age NUMERO (3) BEGIN NULL END
Voit myös lisätä tietotyypin pituuden, kuten olemme tehneet yllä olevassa esimerkissä.
Ankkurit
Ankkuri viittaa periaatteessa% TYPE-avainsanan käyttöön, joka ilmoittaa muuttujan tietotyypillä, joka liittyy taulukon tietyn sarakkeen sarakkeen tietotyyppiin.
Katsokaa esimerkkiä tämän ymmärtämiseksi. Oletetaan, että meillä on taulukko TYÖNTEKIJÖITÄ, voimme käyttää ankkureita seuraavalla tavalla.
ILMOITA v_name TYÖNTEKIJÄ.NIMI% TYPE n_age TYÖNTEKIJÄ.AGE% TYYPPI ALOITA NULL LOPPU /
Tehtävä
Muuttujan määritys on melko helppoa, voimme määrittää määritysoperaattorin avulla arvoja muuttujalle. Seuraava esimerkki osoittaa, kuinka voimme määrittää arvoja muuttujalle.
ILMOITA v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /
Alustus
Voimme myös alustaa muuttujan arvon ilmoitusosassa. Seuraava esimerkki osoittaa, kuinka voimme alustaa arvot muuttujaksi.
ILMOITA v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /
Nyt kun tiedämme kuinka voimme työskennellä muuttujien kanssa, yritetään ymmärtää kuinka käytämme funktioita PL / SQL: ssä.
Toiminto PL / SQL: ssä
PL / SQL: n funktio on periaatteessa nimetty lohko, joka palauttaa arvon. Se tunnetaan myös aliohjelmana tai alaohjelmana, seuraava syntakse osoittaa, kuinka voimme käyttää funktioita PL / SQL: ssä.
Luo [TAI VAIHDA] FUNCTION-funktion_nimi [(parametri_1 [IN] [OUT] data_type, parametri_2 [IN] [OUT] data_type, parametri_N [IN] [OUT] data_type] PALUU return_data_type IS BEGIN käskyt return return_data_type EXCEPTION END /
Ensinnäkin sinun on määritettävä funktion nimi avainsanan jälkeen. Funktion nimen on aloitettava verbillä. Funktiolla ei voi olla mitään, yksi tai useampi parametri, jotka määritämme parametreissa. Meidän on määritettävä kunkin parametrin tietotyyppi nimenomaisesti, ja sitten tulee tila, joka voi jommankumman seuraavista.
kuinka kirjoittaa hälytys javascriptiin
SISÄÄN - IN-parametri on vain luku -parametri.
OUT - Se on vain kirjoitettava parametri
SISÄÄN ULOS - IN OUT -parametri on molemmat kirjoitus- ja kirjoitusparametri.
Tässä on yksinkertainen esimerkki siitä, kuinka käytämme toimintoja PL / SQL: ssä.
Luo tai vaihda toiminto try_parse (iv_numero VARCHAR2: ssa) PALAUTUMISNUMERO ALKAA PALAUTA_numeroon (iv_numero) POIKKEUS KUN MUUT SITTU PALAUTTAVAT NULL LOPPU
Funktion kutsuminen
Yritetään kutsua funktio, jonka olemme tehneet nimettömässä lohkossa seuraavassa esimerkissä.
ASETA PALVELUTUOTTEET KOKOON 1000000 ILMOITA n_x numero n_y numero n_z numero BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DB1 n_y) DBMS_OUTPUT.PUT_LINE (n_z) LOPPU /
Voimme kutsua funktion myös SELECT-käskyssä. Nyt kun tiedämme kuinka voimme käyttää funktioita PL / SQL: ssä, yritetään ymmärtää miten toimimme PL / SQL: n menettelyjen kanssa.
c ++ lajittelutoiminto
PL / SQL-menettely
Menettely on pohjimmiltaan lohko, joka suorittaa tietyn tehtävän. Menettelyä käyttämällä voimme kääriä tai kapseloida monimutkaisen liiketoimintalogiikan ja käyttää niitä uudelleen sekä sovellus- että tietokantakerroksessa.
Katsotaanpa yksinkertainen esimerkki ymmärtääksemme kuinka menettely toimii PL / SQL: ssä
Luo tai vaihda menettelytapa mukautuspalkka (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent NUMBER) ON KÄYNNISSÄ - päivitä työntekijän palkka
Yllä olevassa esimerkissä meillä on kaksi parametria, menettely säätää palkan tietyllä prosenttiosuudella ja UPDATE-avainsana päivittää palkatietojen arvon.
Menettelyn otsikko
Avainsanaa IS edeltävää osaa kutsutaan menettelyn otsikoksi. Seuraavassa on muutamia viitteitä, jotka sinun on tunnettava työskennellessäsi menettelyjä.
skeema - Se on valintamallin valinnainen nimi, johon menettely kuuluu.
nimi - Menettelyn nimi, jonka pitäisi alkaa verbillä.
parametrit - Se on valinnainen luettelo parametreista.
AUTHID - Se määrittää, suoritetaanko menettely nykyisen käyttäjän tai menettelyn alkuperäisen omistajan etuoikeudella.
Menettely Body
Kaikkea IS-avainsanan jälkeen olevaa kutsutaan menettelyrungoksi. Meillä on ilmoitus-, poikkeus- ja toteutuslausekkeet menettelyssä. Toisin kuin toiminto, menettelyn RETURN-avainsanaa käytetään suorittamisen pysäyttämiseen ja ohjauksen palauttamiseen soittajalle.
Menettelyn kutsuminen
Katsotaanpa, kuinka voimme kutsua menettelyä PL / SQL: ssä.
EXEC-menettelynimi (param1, param2 ja hellipparamN)
Voimme kutsua menettelyjä ilman parametreja käyttämällä vain EXEC-avainsanaa ja menettelynimeä. Nyt kun tiedämme kuinka voimme toimia menettelyjen kanssa, yritetään ymmärtää kuinka sisäkkäisiä lohkoja käytetään PL / SQL: ssä.
Sisäkkäinen esto
Sisäkkäinen lohko on vain yhden tai useamman PL / SQL-lohkon yhdistelmä, jotta ohjelman suorittamista ja poikkeuksellista käsittelyä voidaan hallita paremmin.
Tässä on yksinkertainen esimerkki sisäkkäisestä lohkosta.
ASETA PALVELUTUOTE KOKOON 1000000 ILMOITA n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id työntekijät. Työntekijä_id% TYPE: = & emp_id2 henkilötunnus työntekijät.edun_nimi% TYPE BUTIN VALITSE etunimi työntekijän '|| n_emp_id ||' on '|| v_name) POIKKEUS SEN kun no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /
Edellä olevassa esimerkissä ulompaa PL / SQL-lohkoa kutsutaan emolohkoksi tai sulkulohkoksi, sisempi lohko toisaalta tunnetaan alilohkona tai suljettuna lohkona.
Ei ole hieno ajatus käyttää samannimisiä muuttujia molemmissa lohkoissa, koska suorituksen aikana alilohkomuuttuja ohittaa vanhemman lohkomuuttujan. Se tapahtuu, koska PL / SQL antaa etusijan muuttujalle oman lohkonsa sisällä.
Estä tarra
Voimme voittaa tämän ongelman lohkotunnisteella, joka auttaa meitä viittaamaan lohkojen sisällä oleviin muuttujiin tarran avulla.
Tässä on yksinkertainen esimerkki siitä, kuinka voimme käyttää lohkotunnistetta.
<>ILMOITA ... ALOITA ... LOPETA
Lohkotunnisteen käyttö parantaa koodin luettavuutta, parantaa hallintaa ja viittaa lohkoihin. Nyt kun tiedämme kuinka voimme työskennellä sisäkkäisten lohkojen kanssa, yritetään ymmärtää kuinka IF-LAUSEKE toimii PL / SQL: ssä.
IF-lausunto
PL / SQL: llä on kolme IF-lausuntoa
JOS SITTEN - Se on yksinkertaisin JOS LAUSUMA, jos ehto on tosi, lauseet suoritetaan, jos ehto on väärä, se ei tee mitään.
JOS SEN sitten - Tässä lisätään ELSE-lauseke vaihtoehtoiselle lausejärjestykselle.
JOS SITÄ ELSEIF - Sen avulla voimme suorittaa useita testiolosuhteita peräkkäin.
JOS Sitten syntaksia
JOS ehto Sitten järjestyksen_lausekkeet LOPETA JOS
JOS SITÄ MUUTA syntaksia
JOS ehto SEN JAKO_JOS_JOUKKOJEN JAKAUMA_JOSSEN_JAKAUMA_ASETUKSET JAKSO JOS
IF-THEN-ELSEIF-syntakse
JOS ehto1 Sitten sekvenssi_lauseet1 ELSIF ehto2 SIITÄ jakso_lauseet2 MUUTA sekvenssi_lauseet3 LOPETA JOS
Nyt kun olemme tehneet IF-lausunnon, katsokaamme CASE-käskyä PL / SQL: ssä.
CASE-lausunto
CASE-käsky auttaa periaatteessa suorittamaan lauseiden sarjan valitsimen perusteella. Valitsija voi tässä tapauksessa olla mikä tahansa, se voi olla muuttuja, funktio tai yksinkertainen lauseke. Tässä on yksinkertainen esimerkki CASE-lauseen syntaksin näyttämiseksi PL / SQL: ssä.
[<>] TAPAUS [TOSI | valitsin] WHEN lauseke1 SITTEN sekvenssi_lauseet1 MIKSI lauseke2 SIEN järjestys_lauseet2 ... KUN lausekeN SITTURI sekvenssi_lauseetN [MUUT sekvenssi_laatikotN + 1] LOPPUKAASI [tunniste_nimi]
Edellä olevassa syntaksissa CASE-avainsanan jälkeen tulee valitsin. PL / SQL arvioi valitsimen vain kerran selvittääkseen, mikä käsky on suoritettava.
Valitsinta seuraa WHEN-avainsana. Jos lauseke tyydyttää valitsinta, vastaava lause THEN-avainsanan jälkeen suoritetaan.
Nyt kun tiedämme kuinka voimme käyttää CASE-käskyä, yritetään ymmärtää miten käytämme silmukka-lauseita PL / SQL: ssä.
mikä on skanneriluokka java
Silmukka-ilmoitus
PL / SQL: n silmukka-lause on iteratiivinen käsky, jonka avulla voit suorittaa lauseiden sarjan useita kertoja. Tässä on yksinkertainen esimerkki silmukka-lauseen syntaksin näyttämiseksi PL / SQL: ssä.
LOOP-sekvenssi_lausekkeet LOPETA LOOP
Avainsanan LOOP ja END LOOP välissä on oltava vähintään yksi suoritettava käsky.
Silmukka EXIT-lauseella
EXIT ja EXIT kun lausekkeet antavat sinun poistua silmukasta. EXIT WHEN -käsky lopettaa silmukan ehdollisesti, kun taas EXIT lopettaa suorituksen ehdoitta.
LOOP ... POISTU KUN TILA LOPETA LOOP
Silmukan etiketti
Silmukkatunnistetta käytetään silmukkalaskurin muuttujan nimen määrittämiseen, kun sitä käytetään sisäkkäisessä silmukassa. Seuraavassa on silmukan tarran syntaksia.
<>LOOP sequence_of_statements END LOOP -tunniste
Nyt kun tiedämme kuinka voimme käyttää silmukka-lauseita, katsokaamme silmukka-lauseita ymmärryksen parantamiseksi.
Vaikka Loop Statement
Voimme käyttää WHILE-silmukka-käskyä, kun suoritusten lukumäärää ei ole määritetty ennen kuin toteutus alkaa. Seuraavaa syntaksia käytetään WHILE-silmukka-käskyyn PL / SQL: ssä.
WHILE ehdon LOOP sekvenssi_lauseet LOPETA LOOP
Syntaksin ehto on looginen arvo tai lauseke, jonka arvioidaan olevan TOSI, EPÄTOSI tai NULL. Jos ehto on TOSI, lauseet suoritetaan, jos se on EPÄTOSI, suoritus pysähtyy ja ohjaus siirtyy seuraavaan suoritettavaan käskyyn.
Nyt kun tiedämme, kuinka voimme käyttää WHILE-silmukka-käskyä, katsokaamme FOR-silmukka-käskyä.
Silmukka-lauseelle
FOR-silmukka-lause PL / SQL: ssä antaa meille mahdollisuuden suorittaa lauseiden sarja tietyn määrän kertoja. Seuraava on syntaksi FOR-silmukka-käskyn käyttämiseksi PL / SQL: ssä
FOR loop_counter IN [REVERSE] alempi_sidottu .. korkeampi_sidottu LOOP-sekvenssi_lauseet LOPPU LOOP
PL / SQL luo paikallisen muuttujan loop_counter automaattisesti silmukan INTEGER-tietotyypillä, jotta sinun ei tarvitse ilmoittaa sitä nimenomaisesti. Alasuuntainen..higherbound on alue, jolla silmukka toistaa. Lisäksi sinulla on oltava vähintään yksi suoritettava käsky LOOP- ja END LOOP-avainsanojen välillä.
Nyt kun tiedämme kuinka voimme käyttää silmukka-lauseita PL / SQL: ssä, katsotaanpa PL / SQL: n poikkeuksellinen käsittely.
Poikkeuksellinen käsittely
PL / SQL: ssä kaikenlaisia virheitä käsitellään poikkeuksena. Poikkeusta voidaan pitää erityisehtona, joka voi muuttaa tai muuttaa suoritusvirtaa. PL / SQL: ssä on kahdenlaisia poikkeuksia.
Järjestelmän poikkeus - PL / SQL-ajoaika nostaa sen havaitessaan virheen.
Ohjelmoijan määrittelemä poikkeus - Ohjelmoija määrittelee nämä poikkeukset tietyssä sovelluksessa.
Poikkeuksen määritteleminen
PL / SQL: ssä oleva poikkeus on ilmoitettava, ennen kuin sitä voidaan nostaa. Voimme määritellä poikkeuksen EXCEPTION-avainsanalla, kuten olemme tehneet alla olevassa esimerkissä.
EXCEPTION_NAME EXCEPTION
Poikkeuksen saamiseksi käytämme RAISE-avainsanaa.
NOSTA EXCEPTION_NAME
Joten kyse oli PL / SQL: stä, toivottavasti tämä artikkeli on auttanut sinua lisäämään tietosi arvoa. Lisätietoja SQL: stä tai tietokannoista on kattavassa lukulistassamme: .
Jos haluat saada jäsenneltyä koulutusta MySQL: stä, tutustu meidän joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa ymmärtämään MySQL: ää perusteellisesti ja auttaa sinua hallitsemaan aihetta.
Onko sinulla kysymys meille? Mainitse se kommenttiosassa ” PL / SQL-opetusohjelma ”Ja palaan takaisin sinuun.