Postupy vs funkcie v programovaní
Procedúry a funkcie v programovaní umožňujú programátorom zoskupiť inštrukcie do jedného bloku a ten je možné volať z rôznych miest v rámci programu. Kód sa stáva zrozumiteľnejším a kompaktnejším. Vykonaním úprav na jednom mieste bude ovplyvnený celý kód. Pomocou funkcií a postupov; lineárny a dlhý kód možno rozdeliť na nezávislé časti. Poskytujú väčšiu flexibilitu pri kódovaní rôznych programovacích jazykov a databáz.
Čo sú funkcie?
Funkcie sú schopné akceptovať parametre, ktoré sú známe aj ako argumenty. Vykonávajú úlohy podľa týchto argumentov alebo parametrov a návratových hodnôt daných typov. Lepšie si to vysvetlíme na príklade: Funkcia akceptuje reťazec ako parameter a vráti prvý záznam alebo záznam z databázy. Berie do úvahy obsah konkrétneho poľa, ktoré začína takýmito znakmi.
Syntax funkcie je nasledovná:
VYTVORIŤ ALEBO NAHRADIŤ FUNKCIU my_func
(p_name IN VARCHAR2:=‘Jack’) vráťte varchar2 ako začiatok … koniec
Aké sú postupy?
Procedúry môžu akceptovať parametre alebo argumenty a vykonávajú úlohy podľa týchto parametrov. Ak procedúra akceptuje reťazec ako parameter a poskytne zoznam záznamov v databáze, pre ktoré obsah špecifického poľa začína takýmito znakmi.
Syntax procedúr je nasledovná:
POSTUP VYTVORIŤ ALEBO NAHRADIŤ my_proc
(p_name IN VARCHAR2:=‘Jack’) as begin … end
Existujú najmä dva spôsoby, ktorými sa parameter odovzdáva vo funkciách a procedúrach; hodnotou alebo odkazom. Ak parameter prechádza hodnotou; modifikácia je ovplyvnená v rámci funkcie alebo procedúry bez ovplyvnenia jej skutočnej hodnoty.
Na druhej strane, ak sú parametre odovzdávané odkazmi; skutočná hodnota tohto parametra sa zmení kdekoľvek sa volá v kóde podľa pokynov.
Rozdiel medzi procedúrami a funkciami
• Keď je parameter odovzdaný do procedúry; nevracia žiadnu hodnotu, zatiaľ čo funkcia vždy vracia hodnotu.
• Jedným z hlavných rozdielov v oboch je, že procedúry sa nepoužívajú v databázach, zatiaľ čo funkcie zohrávajú dôležitú úlohu pri vracaní hodnôt z databázy.
• Procedúry dokážu vrátiť viacero hodnôt a funkcie dokážu vrátiť obmedzené hodnoty.
• Operácie DML možno použiť v uložených procedúrach; nie sú však možné vo funkciách.
• Funkcie môžu vrátiť iba jednu hodnotu a je to povinné, zatiaľ čo procedúry môžu vrátiť n alebo nulu hodnôt.
• Vo funkciách nie je možné vykonať spracovanie chýb, zatiaľ čo v uložených procedúrach ho možno vykonať.
• Vstupné a výstupné parametre môžu byť odovzdané v procedúrach, zatiaľ čo v prípade funkcií; možno odovzdať iba vstupné parametre.
• Funkcie možno volať z procedúr, zatiaľ čo procedúru nie je možné volať z funkcie.
• Manažment transakcií môže byť zohľadnený v postupoch a nemôže sa brať do úvahy v prípade funkcií.