Protseduurid vs funktsioonid programmeerimisel
Protseduurid ja funktsioonid programmeerimisel võimaldavad programmeerijatel käske koondada ühte plokki ja seda saab programmis erinevatest kohtadest välja kutsuda. Kood muutub lihtsamini mõistetavaks ja kompaktsemaks. Kui teete muudatused ühes kohas, mõjutab see kogu koodi. Funktsioonide ja protseduuride abil; lineaarse ja pika koodi saab jagada iseseisvateks osadeks. Need pakuvad suuremat paindlikkust erinevate programmeerimiskeelte ja andmebaaside kodeerimiseks.
Mis on funktsioonid?
Funktsioonid on võimelised aktsepteerima parameetreid, mida nimetatakse ka argumentideks. Nad täidavad ülesandeid nende argumentide või parameetrite ja antud tüüpi väärtuste alusel. Saame seda paremini selgitada näite abil: Funktsioon aktsepteerib stringi parameetrina ja tagastab andmebaasi esimese kirje või kirje. See võtab arvesse konkreetse välja sisu, mis algab selliste tähemärkidega.
Funktsiooni süntaks on järgmine:
LOO VÕI ASENDA FUNKTSIOON my_func
(p_name IN VARCHAR2:='Jack') tagastab varchar2 kui algus … lõpp
Mis on protseduurid?
Protseduurid aktsepteerivad parameetreid või argumente ja täidavad ülesandeid nende parameetrite järgi. Kui protseduur aktsepteerib parameetrina stringi ja see annab välja loendi andmebaasis olevate kirjetega, mille konkreetse välja sisu algab selliste märkidega.
Protseduuride süntaks on järgmine:
LOO VÕI ASENDA PROTSESS my_proc
(p_name IN VARCHAR2:='Jack') kui algus … lõpp
Peamiselt on parameetri edastamiseks funktsioonides ja protseduurides kaks võimalust; väärtuse või viite järgi. Kui parameeter edastatakse väärtusega; muudatus mõjutab funktsiooni või protseduuri sees, ilma et see mõjutaks selle tegelikku väärtust.
Teis alt, kui parameetrid edastatakse viidetega; selle parameetri tegelikku väärtust muudetakse kõikjal, kus seda juhiste kohaselt koodi sees kutsutakse.
Protseduuride ja funktsioonide erinevus
• Kui parameeter edastatakse protseduuri; see ei tagasta väärtust, samas kui funktsioon tagastab alati väärtuse.
• Üks peamisi erinevusi nende mõlema puhul on see, et andmebaasides ei kasutata protseduure, samas kui funktsioonidel on andmebaasist väärtuste tagastamisel oluline roll.
• Protseduurid suudavad tagastada mitu väärtust ja funktsioonid on võimelised tagastama piiratud väärtusi.
• DML-operatsioone saab kasutada salvestatud protseduurides; aga need pole funktsioonides võimalikud.
• Funktsioonid võivad tagastada ainult ühe väärtuse ja see on kohustuslik, samas kui protseduurid võivad tagastada n või null väärtust.
• Funktsioonides ei saa vigade käsitlemist teha, samas kui seda saab teha salvestatud protseduurides.
• Sisend- ja väljundparameetreid saab edastada protseduurides, funktsioonide puhul aga; edastada saab ainult sisendparameetreid.
• Funktsioone saab kutsuda protseduuridest, samas kui funktsioonist ei ole võimalik protseduuri kutsuda.
• Tehingute haldamist saab käsitleda protseduurides ja seda ei saa arvestada funktsioonide puhul.