Proseduurit vs toiminnot ohjelmoinnissa
Proseduurit ja toiminnot ohjelmoinnissa, antavat ohjelmoijille mahdollisuuden ryhmitellä käskyt yhteen lohkoon ja sitä voidaan kutsua eri paikoista ohjelman sisällä. Koodista tulee helpommin ymmärrettävä ja kompaktimpi. Kun muutokset tehdään yhdessä paikassa, koko koodi vaikuttaa. Toimintojen ja menettelyjen avulla; lineaarinen ja pitkä koodi voidaan jakaa itsenäisiin osiin. Ne tarjoavat enemmän joustavuutta eri ohjelmointikielten ja tietokantojen koodaukseen.
Mitä funktiot ovat?
Funktiot pystyvät hyväksymään parametreja, joita kutsutaan myös argumenteiksi. He suorittavat tehtävät näiden argumenttien tai parametrien mukaisesti ja palauttavat tietyn tyyppiset arvot. Voimme selittää sen paremmin esimerkin avulla: Funktio hyväksyy parametriksi merkkijonon ja palauttaa ensimmäisen merkinnän tai tietueen tietokannasta. Se ottaa huomioon tietyn kentän sisällön, joka alkaa tällaisilla merkeillä.
Funktion syntaksi on seuraava:
LUO TAI KORVAA TOIMINTO my_func
(p_name IN VARCHAR2:='Jack') palauttaa varchar2 alkuna … end
Mitä menettelyt ovat?
Prosedures voi hyväksyä parametrit tai argumentit ja suorittaa tehtäviä näiden parametrien mukaisesti. Jos proseduuri hyväksyy merkkijonon parametriksi ja se antaa luettelon tietokannan tietueista, joiden tietyn kentän sisältö alkaa tällaisilla merkeillä.
Proseduurien syntaksi on seuraava:
LUO TAI KORVAA MENETTELY my_proc
(p_name IN VARCHAR2:='Jack') alkuna … loppu
Pääasiassa on kaksi tapaa, joilla parametri välitetään funktioissa ja proseduureissa; arvon tai viittauksen perusteella. Jos parametri välitetään arvolla; muutos vaikuttaa funktion tai menettelyn sisällä vaikuttamatta sen todelliseen arvoon.
Toisa alta, jos parametrit välitetään viitteillä; tämän parametrin todellinen arvo muuttuu aina, kun sitä kutsutaan koodissa ohjeiden mukaisesti.
Toimenpiteiden ja toimintojen välinen ero
• Kun parametri siirretään proseduuriin; se ei palauta arvoa, kun taas funktio palauttaa aina arvon.
• Yksi suurimmista eroista molemmissa on se, että proseduureja ei käytetä tietokannassa, kun taas funktioilla on tärkeä rooli arvojen palauttamisessa tietokannasta.
• Proseduurit pystyvät palauttamaan useita arvoja ja funktiot voivat palauttaa rajoitettuja arvoja.
• DML-operaatioita voidaan käyttää tallennetuissa proseduureissa; ne eivät kuitenkaan ole mahdollisia funktioissa.
• Funktiot voivat palauttaa vain yhden arvon, ja se on pakollinen, kun taas menettelyt voivat palauttaa n tai nolla arvoa.
• Toiminnoissa virheenkäsittelyä ei voi tehdä, kun taas tallennetuissa toimenpiteissä se voidaan suorittaa.
• Tulo- ja lähtöparametrit voidaan välittää proseduureissa, kun taas funktioiden tapauksessa; vain syöteparametreja voidaan välittää.
• Funktioita voidaan kutsua proseduurista, kun taas toimintoa ei voi kutsua funktiosta.
• Tapahtuman hallintaa voidaan harkita menettelyissä, eikä sitä voida ottaa huomioon funktioiden tapauksessa.