Postupy vs funkcie v programovaní
Procedúry a funkcie v programovaní umožňujú programátorom zoskupovať pokyny do jedného bloku a je možné ich volať z rôznych miest v rámci programu. Tento kód je ľahšie pochopiteľný a kompaktnejší. Vykonaním úprav na jednom mieste bude ovplyvnený celý kód. Pomocou funkcií a postupov; lineárny a dlhý kód je možné rozdeliť do samostatných častí. Poskytujú väčšiu flexibilitu pri kódovaní rôznych programovacích jazykov a databáz.
Čo sú to funkcie?
Funkcie sú schopné prijať parametre, ktoré sa označujú aj ako argumenty. Úlohy plnia podľa týchto argumentov alebo parametrov a návratových hodnôt daných typov. Môžeme si to lepšie vysvetliť na príklade: Funkcia prijme reťazec ako parameter a vráti prvý záznam alebo záznam z databázy. Berie do úvahy obsah pre konkrétne pole, ktoré sa začína týmito znakmi.
Syntax funkcie je nasledovná:
VYTVORIŤ ALEBO VYMENIŤ FUNKCIU my_func
(p_name IN VARCHAR2: = 'Jack') vráti varchar2 ako začiatok … koniec
Čo sú to postupy?
Procedúry môžu akceptovať parametre alebo argumenty a vykonávajú úlohy podľa týchto parametrov. Ak procedúra prijme reťazec ako parameter a vydá zoznam so záznamami v databáze, pre ktoré obsah konkrétneho poľa začína takýmito znakmi.
Syntax postupov je nasledovná:
VYTVORTE ALEBO VYMENTE POSTUP my_proc
(p_name IN VARCHAR2: = 'Jack') ako začiatok … koniec
Existujú hlavne dva spôsoby, ako sa parameter odovzdáva vo funkciách a postupoch; podľa hodnoty alebo podľa referencie. Ak je parameter odovzdaný hodnotou; zmena je ovplyvnená v rámci funkcie alebo postupu bez ovplyvnenia jej skutočnej hodnoty.
Na druhej strane, ak sú parametre odovzdávané odkazmi; skutočná hodnota tohto parametra sa zmení, kedykoľvek sa v rámci kódu zavolá podľa pokynov.
• keď je parameter odovzdaný do postupu; nevracia žiadnu hodnotu, zatiaľ čo funkcia vždy vráti hodnotu. • Jedným z hlavných rozdielov v oboch je to, že postupy sa nepoužívajú v databázach, zatiaľ čo funkcie hrajú dôležitú úlohu pri vracaní hodnôt z databázy. • Procedúry sú schopné vrátiť viac hodnôt a funkcie sú schopné vrátiť obmedzené hodnoty. • V uložených procedúrach je možné použiť operácie DML; vo funkciách však nie sú možné. • Funkcie môžu vrátiť iba jednu hodnotu a je to povinné, zatiaľ čo procedúry môžu vrátiť n alebo nulové hodnoty. • Vo funkciách nie je možné vykonať spracovanie chýb, ale možno ich vykonať v uložených procedúrach. • Vstupné a výstupné parametre je možné odovzdávať v procedúrach, zatiaľ čo v prípade funkcií; možno odovzdať iba vstupné parametre. • Funkcie je možné volať z procedúr, zatiaľ čo z funkcie nie je možné vyvolať procedúru. • Manažment transakcií je možné zohľadniť v postupoch a nemožno ho zohľadniť v prípade funkcií. |