Tengo el siguiente procedimiento almacenado:
Código PHP:
/*
Retornar el resultado de una consulta
*/
DROP FUNCTION retornarConsulta2();
CREATE OR REPLACE FUNCTION retornarConsulta2() RETURNS setof RECORD AS $$
DECLARE
registro RECORD;
registrob RECORD;
BEGIN
FOR registro IN EXECUTE 'select cedula,nombre from detalle_pago where cod_planilla = ((select max(cod_planilla) from detalle_pago where entidad in(''CA'',''BN''))) and sucursal = 12 and entidad = ''BN''' LOOP
/*
SELECCIONAR A LAS PERSONAS QUE NO APARECIERON EN LA PLANILLA ANTERIOR
*/
FOR registrob IN EXECUTE 'select count(*) as conteo from detalle_pago where cod_planilla = 4 and sucursal = 12 and entidad = ''BN'' and cedula = ''registro.cedula'' ' LOOP
IF registrob.conteo = 0 THEN
RETURN NEXT registro;
END IF;
END LOOP;
END LOOP;
RETURN ;
END
$$ LANGUAGE plpgsql;
select * from retornarConsulta2() as (cedula character varying, nombre character varying);