O procedură stocată și o funcție definită de utilizator (UDF) este un set de instrucțiuni SQL și procedurale (declarații, atribuiri, bucle, fluxuri de control etc.) care sunt stocate pe serverul de baze de date și pot fi invocate folosind interfața SQL.
Exemplu rapid:
În PostgreSQL, atât procedurile stocate, cât și funcțiile definite de utilizator sunt create cu instrucțiunea CREATE FUNCTION. Există diferențe între noțiunea de proceduri stocate și cea de funcții în sistemele de baze de date:
Procedura stocată | Funcție | ||
Utilizarea într-o expresie | . | ||
Returnează o valoare | |||
Returnează valorile ca OUT parametri | |||
Returnează un singur set de rezultate | (sub formă de table function) | ||
Returnează mai multe seturi de rezultate |
Deci, în majoritatea cazurilor, scopul unei proceduri stocate este acela de a:
-
Efectuarea de acțiuni fără a returna niciun rezultat (operații INSERT, UPDATE i.e.)
-
Să returneze una sau mai multe valori scalare ca parametri OUT
-
Să returneze unul sau mai multe seturi de rezultate
De obicei, scopul unei funcții definite de utilizator este de a procesa parametrii de intrare și de a returna o nouă valoare.
Instrumente de raportare
Multe instrumente de raportare (Crystal Reports, Reporting Services, instrumente BI etc.) vă permit să specificați o interogare (instrucțiune SQL SELECT) sau o procedură stocată care returnează un set de rezultate pentru a defini un set de date pentru un raport.
Procedurile stocate sunt foarte utile atunci când trebuie să efectuați calcule complexe înainte ca datele să fie disponibile pentru un raport.
.