Proceduri vs funcții în programare
Procedurile și funcțiile din programare permit programatorilor să grupeze instrucțiunile într-un singur bloc și poate fi apelat din diferite locuri ale programului. Codul devine mai ușor de înțeles și mai compact. Prin efectuarea modificărilor î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 codării diferitelor limbaje de programare și baze de date.
Ce sunt funcțiile?
Funcțiile sunt capabile să accepte parametri care sunt, de asemenea, cunoscuți ca argumente. Ei îndeplinesc sarcinile conform acestor argumente sau parametri și returnează valorile tipurilor 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. Se ia în considerare conținutul unui câmp specific 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') returnează varchar2 ca început … sfârșit
Ce sunt procedurile?
Procedurile pot accepta parametrii sau argumentele și îndeplinesc sarcini conform acestor parametri. Dacă o procedură acceptă un șir ca parametru și oferă o listă cu înregistrări în baza de date pentru care conținutul unui câmp specific începe cu astfel de caractere.
Sintaxa procedurilor este următoarea:
CREAȚI SAU ÎNLOCUIȚI PROCEDURA my_proc
(p_name IN VARCHAR2: = 'Jack') ca început … sfârșit
În principal, există două moduri prin care un parametru este transmis în funcții și proceduri; prin 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.
• 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 în ambele este că procedurile nu sunt utilizate în bazele de date, în timp ce funcțiile joacă un rol important în returnarea valorilor dintr-o bază de date. • Procedurile sunt capabile să returneze mai multe valori, iar funcțiile sunt capabile să returneze valori limitate. • Operațiile DML pot fi utilizate în procedurile stocate; cu toate acestea, ele nu sunt posibile în funcții. • Funcțiile pot returna o singură valoare și este obligatorie, în timp ce procedurile pot returna valori n sau zero. • În funcții, gestionarea erorilor nu poate fi realizată, în timp ce poate fi efectuată în proceduri stocate. • Parametrii de intrare și ieșire pot fi trecuți în proceduri, în timp ce în cazul funcțiilor; numai parametrii de intrare pot fi trecuți. • 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. |