Yhteenveto: Tässä opetusohjelmassa tutustutaan PL/SQL:n anonyymiin lohkoon ja sen suorittamiseen SQL*Plus- ja SQL Developer -työkalujen avulla.
PL/SQL:n anonyymin lohkon yleiskatsaus
PL/SQL on lohkoja sisältävä kieli, jonka koodi on järjestetty lohkoihin. PL/SQL-lohko koostuu kolmesta osasta: julistus-, suoritus- ja poikkeuskäsittelyosasta. Lohkossa suoritettava osio on pakollinen, kun taas julistus- ja poikkeuskäsittelyosiot ovat valinnaisia.
PL/SQL-lohkolla on nimi. Functions tai Procedures on esimerkki nimetystä lohkosta. Nimetty lohko tallennetaan Oracle-tietokantapalvelimeen ja sitä voidaan käyttää myöhemmin uudelleen.
Lohko, jolla ei ole nimeä, on anonyymi lohko. Anonyymiä lohkoa ei tallenneta Oracle Database -palvelimeen, joten se on tarkoitettu vain kertakäyttöön. Nimettömät PL/SQL-lohkot voivat kuitenkin olla hyödyllisiä testauksessa.
Oheinen kuva havainnollistaa PL/SQL-lohkon rakennetta:
1) Deklaraatio-osio
PL/SQL-lohkossa on deklaraatio-osio, jossa deklarioidaan muuttujat, varataan muistia kursoreille ja määritellään tietotyypit.
2) Suoritettava osio
PL/SQL-lohkossa on suoritettava osio. Suoritettava osio alkaa avainsanalla BEGIN
ja päättyy avainsanalla END
. Suoritettavassa osiossa on oltava vähintään yksi suoritettava lauseke, vaikka se olisi lauseke NULL
, joka ei tee mitään.
3) Poikkeuskäsittelyosio
Pl/SQL-lohkossa on poikkeuskäsittelyosio, joka alkaa avainsanalla EXCEPTION
. Poikkeuskäsittelyosassa otetaan kiinni ja käsitellään suoritusosassa olevan koodin herättämiä poikkeuksia.
Huomaa, että lohko itsessään on suoritettava lauseke, joten lohko voidaan sijoittaa toisten lohkojen sisälle.
Esimerkki nimettömästä PL/SQL-lohkosta
Seuraavassa esimerkissä näytetään yksinkertainen nimettömänä pidettävä PL/SQL-lohko, jossa on yksi suoritusosio.
Toteutettava osio kutsuu DMBS_OUTPUT.PUT_LINE
-proseduuria "Hello World"
-viestin näyttämiseksi näytöllä.
PL/SQL:n anonyymin lohkon suorittaminen SQL*Plus-ohjelman avulla
Kun sinulla on anonyymin lohkon koodi, voit suorittaa sen käyttämällä SQL*Plus-ohjelmaa, joka on Oracle Database -tietokannan tarjoama komentorivikäyttöliittymä SQL-lausekkeiden ja PL/SQL-lohkojen suorittamiseen.
Oheinen kuva havainnollistaa, miten PL/SQL-lohko suoritetaan SQL*Plus-ohjelman avulla:
Lisää ensin yhteys Oracle Database -palvelimeen käyttäjänimen ja salasanan avulla.
Toiseksi kytke palvelimen ulostulo päälle komennolla SET SERVEROUTPUT ON
, jotta DBMS_OUTPUT.PUT_LINE
-proseduuri näyttää tekstiä näytöllä.
Kolmanneksi kirjoita lohkon koodi ja kirjoita etuviiva ( /
), jotta SQL*Plus saa ohjeen lohkon suorittamiseen. Kun kirjoitat eteenviivausviivan (/), SQL*Plus suorittaa lohkon ja näyttää Hello World
-viestin näytöllä kuvissa esitetyllä tavalla.
Huomaa, että sinun on suoritettava SET SERVEROUTPUT ON
-komento jokaisessa istunnossa, jossa muodostat yhteyden Oracle-tietokantaan, jotta viesti voidaan näyttää DBMS_OUTPUT.PUT_LINE
-proseduurin avulla.
Toteuttaaksesi syöttämäsi lohkon uudelleen käytät /
-komentoa sen sijaan, että kirjoittaisit kaiken alusta alkaen:
Jos haluat muokata koodilohkoa, käytä edit
-komentoa. SQL*Plus kirjoittaa koodilohkon tiedostoon ja avaa sen tekstieditorissa seuraavan kuvan mukaisesti:
Voit muuttaa tiedoston sisältöä seuraavasti:
Tallenna ja sulje tiedosto. Tiedoston sisältö kirjoitetaan puskuriin ja käännetään uudelleen.
Sen jälkeen voit suorittaa koodilohkon uudelleen, se käyttää uutta koodia:
PL/SQL anonyymin lohkon suorittaminen SQL Developer -ohjelmalla
Lisää ensin yhteys Oracle-tietokantapalvelimeen Oracle SQL Developer -ohjelmalla.
Luo toiseksi uusi SQL-tiedosto nimeltä anonymous-block.sql
, joka sijaitsee hakemistossa C:\plsql
ja johon PL/SQL-koodi tallennetaan.
Kolmanneksi kirjoita PL/SQL-koodi ja suorita se napsauttamalla Execute-painiketta tai painamalla Ctrl-Enter-näppäimistön pikavalintaa.
Lisäesimerkkejä nimettömistä PL/SQL-lohkoista
Tässä esimerkissä ilmoitetaan ensin muuttuja l_message
, joka sisältää tervehdysviestin. Ja sitten suoritusosassa käytämme DBMS_OUTPUT.PUTLINE
-proseduuria näyttämään tämän muuttujan sisällön sen sijaan, että käyttäisimme kirjaimellista merkkijonoa.
Tässä on tuloste:
Hello World!
Seuraavaan anonyymilohkoesimerkkiin lisätään poikkeuskäsittelyosio, joka ottaa kiinni suoritusosassa esiin tulleen ZERO_DIVIDE
poikkeuksen ja näyttää virheilmoituksen.
Virheilmoitus on:
ORA-01476: divisor is equal to zero
Nyt sinun pitäisi osata luoda nimettömiä PL/SQL-lohkoja ja suorittaa niitä SQL*Plus- ja Oracle SQL Developer -työkalujen avulla.
- Oliko tästä opetusohjelmasta apua?
- KylläEi