Como mencionamos, las funciones PL/pgSQL también pueden actuar sobre tipos compuestos.
Si tenemos la siguiente tabla:
mancha=> select nombre,salario from emp; nombre |salario -------------+------- Bill Clinton | 1000 Boris Yeltsin| 2000 (2 rows)
Y definimos la siguiente función:
CREATE FUNCTION BienPagao (EMP, int4) RETURNS bool AS ' DECLARE emprec ALIAS FOR $1; sallim ALIAS FOR $2; BEGIN IF emprec.salario ISNULL THEN RETURN ''f''; END IF; RETURN emprec.salario > sallim; END; ' LANGUAGE 'plpgsql';
Podemos hacer consultas para averiguar quienes son aquellos empleados que ganan más de una determinada cantidad.
mancha=> select nombre,BienPagao (emp, 500) as SobrePagado from emp; nombre |sobrepagado -------------+----------- Bill Clinton |t Boris Yeltsin|t (2 rows)
En efecto, creo que ambos ganan más de lo que merecen.