Questo sito contribuisce alla audience di

La guida risponde

0 Vota

Restituzione di valori

Domanda

Ho letto il tuo ultimo intervento riguardo il linguaggio pl/sql. Non ho capito molto bene la differenza tra procedure e funzioni dato che entrambe possono restituire un valore. Ringrazio e saluto. Leo

Risposta

Effettivamente in pl/sql sia le procedure che le funzioni possono restituire delle variabili valorizzate utilizzando i parametri di tipo OUT e IN OUT (un po' come succede in C con i puntatori e in altri linguaggi quando si passa un parametro per riferimento e non per valore).

La differenza sta nella chiamata, nel caso di una procedura:

p(x);

nel caso di una funzione:

y := f(x)


Come vedi la funzione dell'esempio restituisce un valore che viene memorizzato nella variabile y. Lo stesso risultato lo si puo' ottenere con una procedura:

p(x,y);

a patto che il secondo parametro sia di tipo OUT o IN OUT.

Ma allora a che servono le funzioni se possono essere sostituite dalle procedure?

A questa domanda rispondero' meglio in un intervento futuro, comunque ti anticipo che solo le funzioni possono essere utilizzate nelle SELECT.

lco*** - 16 anni e 11 mesi fa
Registrati per commentare