PL/SQL-lohko: RAKENNE, syntaksi, ANONYMI Esimerkki
Mikรค on PL/SQL-lohko?
PL/SQL:ssรค koodia ei suoriteta yksirivisessรค muodossa, vaan se suoritetaan aina ryhmittelemรคllรค koodi yhdeksi elementiksi nimeltรค Blocks. Tรคssรค opetusohjelmassa opit nรคistรค lohkoista.
Lohkot sisรคltรคvรคt sekรค PL/SQL:n ettรค SQL-kรคskyn. Kaikki nรคmรค kรคskyt suoritetaan kokonaisuutena sen sijaan, ettรค suoritettaisiin yksittรคinen komento kerrallaan.
Lohkon rakenne
PL/SQL-lohkoilla on ennalta mรครคritetty rakenne, johon koodi ryhmitellรครคn. Alla on eri osioita PL/SQL-lohkoista.
- Ilmoitusosio
- Toteutusosio
- Poikkeus-kรคsittely-osio
Alla oleva kuva havainnollistaa eri PL/SQL-lohkoja ja niiden osiojรคrjestystรค.
Julistusosio
Tรคmรค on PL/SQL-lohkojen ensimmรคinen osa. Tรคmรค osio on valinnainen osa. Tรคmรค on osio, jossa lohkossa tarvittavien muuttujien, kohdistimien, poikkeusten, aliohjelmien, kรคytรคnnรถn kรคskyjen ja kokoelmien ilmoitus ilmoitetaan. Alla on muutamia tรคmรคn osan ominaisuuksia.
- Tรคmรค osio on valinnainen, ja se voidaan ohittaa, jos ilmoituksia ei tarvita.
- Tรคmรคn pitรคisi olla ensimmรคinen osio PL/SQL-lohkossa, jos sellainen on.
- Tรคmรค osio alkaa avainsanalla 'DECLARE' liipaisimia ja anonyymejรค estoja varten. Muissa aliohjelmissa tรคmรค avainsana ei ole lรคsnรค. Sen sijaan aliohjelman nimen mรครคrittelyn jรคlkeinen osa merkitsee ilmoitusosion.
- Tรคmรคn osan jรคlkeen tulee aina olla suoritusosio.
Suoritusosio
Suoritusosa on tรคrkein ja pakollinen osa, joka todella suorittaa sen sisรครคn kirjoitetun koodin. Koska PL / SQL odottaa suoritettavia kรคskyjรค tรคstรค lohkosta tรคmรค ei voi olla tyhjรค lohko, eli siinรค tulee olla vรคhintรครคn yksi kelvollinen suoritettava koodirivi. Alla on muutamia tรคmรคn osan ominaisuuksia.
- Tรคmรค voi sisรคltรครค sekรค PL/SQL-koodia ettรค SQL-koodia.
- Tรคmรค voi sisรคltรครค yhden tai useita lohkoja sisรคkkรคisenรค lohkona.
- Tรคmรค osio alkaa avainsanalla "BEGIN".
- Tรคmรคn osion jรคlkeen tulee joko 'END' tai Exception-Handling -osio (jos sellainen on)
Poikkeuskรคsittely-osio
Poikkeus on vรคistรคmรคtรถn ohjelmassa, joka tapahtuu ajon aikana ja sen kรคsittelemiseksi Oracle on tarjonnut Poikkeuskรคsittely-osion lohkoissa. Tรคmรค osa voi sisรคltรครค myรถs PL/SQL-kรคskyjรค. Tรคmรค on valinnainen osa PL/SQL-lohkoista.
- Tรคmรค on osa, jossa suorituslohkossa esiin nostettu poikkeus kรคsitellรครคn.
- Tรคmรค osa on PL/SQL-lohkon viimeinen osa.
- Ohjaus tรคstรค osasta ei voi koskaan palata suorituslohkoon.
- Tรคmรค osio alkaa avainsanalla 'POIKKEUS'.
- Tรคmรคn osion jรคlkeen tulee aina olla avainsana 'END'.
Avainsana 'END' merkitsee PL/SQL-lohkon loppua.
PL/SQL-lohkosyntaksi
Alla on PL/SQL-lohkorakenteen syntaksi.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
Huomautus: Lohkon perรคssรค tulee aina olla '/', joka lรคhettรครค kรครคntรคjรคlle tiedon lohkon pรครคttymisestรค.
PL/SQL-lohkojen tyypit
PL/SQL-lohkoja on pรครคasiassa kahta tyyppiรค.
- Anonyymit lohkot
- nimeltรค Blocks
Anonyymit lohkot
Anonyymit lohkot ovat PL/SQL-lohkoja, joille ei ole annettu mitรครคn nimiรค. Ne on luotava ja kรคytettรคvรค samassa istunnossa, koska niitรค ei tallenneta palvelimeen tietokantaobjekteina.
Koska niitรค ei tarvitse tallentaa tietokantaan, ne eivรคt tarvitse kรครคnnรถsvaiheita. Ne kirjoitetaan ja suoritetaan suoraan, ja kokoaminen ja suoritus tapahtuvat yhdessรค prosessissa.
Alla on muutamia Anonyymien lohkojen ominaisuuksia.
- Nรคille lohkoille ei ole mรครคritetty viitenimeรค.
- Nรคmรค lohkot alkavat avainsanalla DECLARE tai BEGIN.
- Koska nรคillรค lohkoilla ei ole viitenimeรค, niitรค ei voi tallentaa myรถhempรครค kรคyttรถรค varten. Ne luodaan ja suoritetaan samassa istunnossa.
- He voivat kutsua muita nimettyjรค lohkoja, mutta kutsuminen nimettรถmรครคn lohkoon ei ole mahdollista, koska sillรค ei ole viittausta.
- Siinรค voi olla sisรคkkรคisiรค lohkoja, jotka voivat olla nimettyjรค tai nimettรถmiรค. Se voidaan myรถs upottaa mihin tahansa lohkoon.
- Nรคissรค lohkoissa voi olla kaikki kolme lohkon osaa, joissa suoritusosio on pakollinen, kaksi muuta osiota ovat valinnaisia.
Nimetyt lohkot
Nimetyillรค lohkoilla on niille erityinen ja ainutlaatuinen nimi. Ne tallennetaan tietokantaobjekteina palvelimelle. Koska ne ovat saatavilla tietokantaobjekteina, niihin voidaan viitata tai niitรค voidaan kรคyttรครค niin kauan kuin se on palvelimella. Nimettyjen lohkojen kรครคnnรถsprosessi tapahtuu erikseen luotaessa niitรค tietokantaobjekteina.
Alla on muutamia muita nimettyjen lohkojen ominaisuuksia.
- Nรคitรค lohkoja voidaan kutsua muista lohkoista.
- Lohkon rakenne on sama kuin anonyymin lohkon, paitsi ettรค se ei koskaan ala avainsanalla 'DECLARE'. Sen sijaan se alkaa avainsanalla 'CREATE', joka kรคskee kรครคntรคjรครค luomaan sen tietokantaobjektiksi.
- Nรคmรค lohkot voidaan upottaa muiden lohkojen sisรครคn. Se voi sisรคltรครค myรถs sisรคkkรคisiรค lohkoja.
- Nimetyt lohkot ovat periaatteessa kahta tyyppiรค:
- menettely
- Toiminto
Opimme lisรครค nรคistรค nimetyistรค lohkoista myรถhemmรคn opetusohjelman aiheissa "Prosedure" ja "Function".
Yhteenveto
Tรคmรคn opetusohjelman jรคlkeen sinun tulee olla tietoinen PL/SQL-lohkoista ja niiden tyypeistรค, lohkojen eri osista ja niiden kรคytรถstรค. Yksityiskohtainen kuvaus nimetyistรค PL/SQL-lohkoista kรคsitellรครคn myรถhemmรคssรค opetusohjelmassa.


