As of CVS tip, plpgsql handles output parameters, in the style
CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT prod int) AS $$
sum := x + y;
prod := x * y;
$$ LANGUAGE plpgsql;
The RETURN statement is kinda useless in this example, but it is still
required, because we don't allow control to fall off the end of a
plpgsql function without causing an error.
I am thinking we should allow exit by falling off the end of the
function when (a) it has output parameter(s), or (b) it is declared
"RETURNS void". Comments?
How does Oracle's PL/SQL handle this?
regards, tom lane