Protseduurid vs funktsioonid programmeerimisel
Protseduurid ja funktsioonid programmeerimisel võimaldavad programmeerijatel grupeerida juhised ühte plokki ja seda saab kutsuda programmi erinevatest kohtadest. Kood muutub lihtsamini mõistetavaks ja kompaktsemaks. Kui teete muudatusi ühes kohas, mõjutab see kogu koodi. Funktsioonide ja protseduuride abil; lineaarse ja pika koodi saab jagada iseseisvateks osadeks. Need pakuvad erinevate programmeerimiskeelte ja andmebaaside kodeerimisel suuremat paindlikkust.
Mis on funktsioonid?
Funktsioonid on võimelised aktsepteerima parameetreid, mida nimetatakse ka argumentideks. Nad täidavad ülesandeid vastavalt nendele argumentidele või parameetritele ja antud tüüpi tagastusväärtustele. Näite abil saame seda paremini selgitada: Funktsioon aktsepteerib parameetrina stringi ja tagastab andmebaasist 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 FUNKTSIOON my_func
(p_name IN VARCHAR2: = 'Jack') tagastab varchar2 algusena … lõpuni
Mis on protseduurid?
Protseduurid võivad parameetreid või argumente aktsepteerida ja nad täidavad nende parameetrite kohaseid ülesandeid. Kui protseduur aktsepteerib parameetrina stringi ja annab välja andmebaasi kirjetega loendi, mille konkreetse välja sisu selliste tähemärkidega algab.
Protseduuride süntaks on järgmine:
Loo või asenda protseduur my_proc
(p_nimi VARCHAR2-s: = 'Jack'), kui algus… lõpp
Põhimõtteliselt on parameetri edastamine funktsioonides ja protseduurides kahel viisil; väärtuse või viite järgi. Kui parameeter edastatakse väärtusega; muudatus on funktsiooni või protseduuri raames mõjutatud, ilma et see mõjutaks selle tegelikku väärtust.
Teiselt poolt, kui parameetrid edastatakse viidetega; selle parameetri tegelikku väärtust muudetakse kõikjal, kus seda koodis kutsutakse vastavalt juhistele.
• kui parameeter sisestatakse protseduuri; see ei tagasta ühtegi väärtust, samas kui funktsioon tagastab alati väärtuse. • Mõlemas üks suurimaid erinevusi on see, et protseduure andmebaasides ei kasutata, samas kui funktsioonid mängivad olulist rolli väärtuste tagastamisel andmebaasist. • Protseduurid on võimelised tagastama mitu väärtust ja funktsioonid on võimelised tagastama piiratud väärtusi. • DML-toiminguid saab kasutada salvestatud protseduurides; funktsioonides pole need aga võimalikud. • Funktsioonid võivad tagastada ainult ühe väärtuse ja see on kohustuslik, samas kui protseduurid võivad anda n või null väärtuse. • Funktsioonides ei saa vigade käsitlemist teha, samas kui seda saab teha salvestatud protseduurides. • sisendi ja väljundi parameetreid saab edastada protseduurides, funktsioonide korral; saab edastada ainult sisendparameetreid. • Funktsioonidele saab helistada protseduuride järgi, samas kui protseduuri pole võimalik funktsioonist kutsuda. • Tehingute haldamist saab kaaluda protseduurides ja seda ei saa kaaluda funktsioonide korral. |