PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Passando um ResultSet para uma função Postgresql


Você pode usar um cursor , mas muito impraticável para calcular um mínimo.

Eu usaria uma tabela temporária para essa finalidade e passe o nome da tabela para uso em SQL dinâmico :
CREATE OR REPLACE FUNCTION f_min_id(_tbl regclass, OUT min_id int) AS 
$func$
BEGIN

EXECUTE 'SELECT min(id) FROM ' || _tbl
INTO min_id;

END  
$func$ LANGUAGE plpgsql;

Ligar:
CREATE TEMP TABLE foo ON COMMIT DROP AS
SELECT id, name
FROM   users
LIMIT  50;

SELECT f_min_id('foo');

Pontos principais


-> Demonstração do SQLfiddle