Procedures vs Functies in Programmeren
Procedures en functies bij het programmeren, stellen programmeurs in staat om instructies in een enkel blok te groeperen en het kan vanaf verschillende plaatsen in het programma worden opgeroepen. De code wordt gemakkelijker te begrijpen en compacter. Door de wijzigingen op één plek uit te voeren, wordt de hele code beïnvloed. Met behulp van functies en procedures; een lineaire en lange code kan worden onderverdeeld in onafhankelijke secties. Ze bieden meer flexibiliteit voor de codering van verschillende programmeertalen en databases.
Wat zijn functies?
Functies kunnen parameters accepteren die ook wel argumenten worden genoemd. Ze voeren de taken uit volgens deze argumenten of parameters en retourneren waarden van bepaalde typen. We kunnen het beter uitleggen aan de hand van een voorbeeld: Een functie accepteert een string als parameter en retourneert het eerste item of record uit een database. Het houdt rekening met de inhoud voor een specifiek veld dat met dergelijke tekens begint.
De syntaxis van de functie is als volgt:
CREER OF VERVANG FUNCTIE my_func
(p_name IN VARCHAR2:=‘Jack’) retourneer varchar2 als begin … end
Wat zijn procedures?
Procedures kunnen de parameters of argumenten accepteren en ze voeren taken uit volgens deze parameters. Als een procedure een string als parameter accepteert en een lijst geeft met records in de database waarvan de inhoud van een specifiek veld met zulke karakters begint.
De syntaxis van procedures is als volgt:
PROCEDURE MAKEN OF VERVANGEN my_proc
(p_name IN VARCHAR2:=‘Jack’) als begin … end
Er zijn voornamelijk twee manieren waarop een parameter wordt doorgegeven in functies en procedures; op waarde of op referentie. Als parameter wordt doorgegeven door een waarde; de wijziging wordt beïnvloed binnen de functie of procedure zonder de werkelijke waarde ervan te beïnvloeden.
Aan de andere kant, als de parameters worden doorgegeven door verwijzingen; de werkelijke waarde van deze parameter zal worden gewijzigd waar deze ook wordt aangeroepen in de code volgens de instructies.
Verschil tussen procedures en functies
• Wanneer de parameter wordt doorgegeven aan de procedure; het geeft geen waarde terug, terwijl een functie altijd een waarde retourneert.
• Een van de belangrijkste verschillen in beide is dat procedures niet worden gebruikt in databases, terwijl functies een belangrijke rol spelen bij het retourneren van waarden uit een database.
• Procedures kunnen meerdere waarden retourneren en de functies kunnen beperkte waarden retourneren.
• DML-bewerkingen kunnen worden gebruikt in opgeslagen procedures; ze zijn echter niet mogelijk in functies.
• Functies kunnen slechts één waarde retourneren en het is verplicht, terwijl procedures n of nul waarden kunnen retourneren.
• In functies kan foutafhandeling niet worden uitgevoerd, terwijl dit wel kan worden uitgevoerd in opgeslagen procedures.
• Invoer- en uitvoerparameters kunnen worden doorgegeven in procedures, terwijl in het geval van functies; alleen invoerparameters kunnen worden doorgegeven.
• Functies kunnen worden aangeroepen vanuit procedures, terwijl het niet mogelijk is om een procedure vanuit een functie aan te roepen.
• Transactiebeheer kan worden overwogen in procedures en niet in het geval van functies.