PL/pgSQL学习笔记之七

http://www.postgresql.org/docs/9.1/static/plpgsql-declarations.html

如果一个PL/pgSQL函数声明了输出参数,输出参数被赋予$n名称和可选的别名,和正常输入参数的作法一样。输出参数是一个从NULL开始的变量;它将被在函数的执行过程中被赋值。此参数的最后的值就是函数的返回值。例如,the sales-tax 例子可以这样实现:

例子:

CREATE FUNCTION sales_tax(subtotal real, OUT tax real) AS $$
BEGIN
    tax := subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;

注意我们省略了 RETURNS real -- 我们可以包含它,但是这是多余的。

在需要返回多个值得时候,输出参数最有用。一个实验性的例子是:

CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT prod int) AS $$
BEGIN
    sum := x + y;
    prod := x * y;
END;
$$ LANGUAGE plpgsql;

这种方式创建了为函数的返回值创建了一个匿名的记录类型。此时如果使用RETURNS,则需要写 RETURNS record。

原文地址:https://www.cnblogs.com/gaojian/p/3189753.html