Proceduri versus funcții în programare
Proceduri și funcții în programare, permit programatorilor să grupeze instrucțiuni într-un singur bloc și poate fi apelat din diferite locuri din program. Codul devine mai ușor de înțeles și mai compact. Efectuând modificările într-un singur loc, întregul cod va fi afectat. Cu ajutorul funcțiilor și procedurilor; un cod liniar și lung poate fi împărțit în secțiuni independente. Acestea oferă mai multă flexibilitate la codificarea diferitelor limbaje de programare și baze de date.
Ce sunt funcțiile?
Funcțiile sunt capabile să accepte parametri cunoscuți și ca argumente. Ei îndeplinesc sarcinile în funcție de aceste argumente sau parametri și returnează valori ale unor tipuri date. O putem explica mai bine cu ajutorul unui exemplu: O funcție acceptă un șir ca parametru și returnează prima intrare sau înregistrare dintr-o bază de date. Ia în considerare conținutul unui anumit câmp care începe cu astfel de caractere.
Sintaxa funcției este următoarea:
CREAȚI SAU ÎNLOCUIȚI FUNCȚIA my_func
(p_name IN VARCHAR2:=‘Jack’) return varchar2 as begin … end
Ce sunt procedurile?
Procedurile pot accepta parametrii sau argumentele și efectuează sarcini conform acestor parametri. Dacă o procedură acceptă un șir ca parametru și oferă o listă cu înregistrări din baza de date pentru care conținutul unui anumit câmp începe cu astfel de caractere.
Sintaxa procedurilor este următoarea:
CREAȚI SAU ÎNLOCUIȚI PROCEDURA my_proc
(p_name IN VARCHAR2:=‘Jack’) as begin … end
În principal, există două moduri prin care un parametru este transmis în funcții și proceduri; după valoare sau prin referință. Dacă parametrul este trecut de o valoare; modificarea este afectată în cadrul funcției sau procedurii fără a afecta valoarea reală a acesteia.
Pe de altă parte, dacă parametrii sunt trecuți prin referințe; valoarea reală a acestui parametru va fi modificată oriunde este apelat în cod conform instrucțiunilor.
Diferența dintre proceduri și funcții
• Când parametrul este trecut în procedură; nu returnează nicio valoare, în timp ce o funcție returnează întotdeauna o valoare.
• Una dintre diferențele majore dintre ambele este că procedurile nu sunt utilizate în baze de date, în timp ce funcțiile joacă un rol important în returnarea valorilor dintr-o bază de date.
• Procedurile pot returna mai multe valori, iar funcțiile pot returna valori limitate.
• Operațiile DML pot fi utilizate în procedurile stocate; cu toate acestea, acestea nu sunt posibile în funcții.
• Funcțiile pot returna o singură valoare și este obligatorie, în timp ce procedurile pot returna n sau valori zero.
• În funcții, tratarea erorilor nu poate fi efectuată, în timp ce poate fi efectuată în procedurile stocate.
• Parametrii de intrare și de ieșire pot fi transferați în proceduri, în timp ce în cazul funcțiilor; pot fi trecuți numai parametrii de intrare.
• Funcțiile pot fi apelate din proceduri, în timp ce nu este posibilă apelarea unei proceduri dintr-o funcție.
• Gestionarea tranzacțiilor poate fi luată în considerare în proceduri și nu poate fi luată în considerare în cazul funcțiilor.