PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Übergeben eines ResultSet an eine Postgresql-Funktion

Sie könnten einen Cursor verwenden , aber das ist für die Berechnung eines Minimums sehr unpraktisch.

Ich würde eine temporäre Tabelle verwenden zu diesem Zweck und übergeben Sie den Tabellennamen zur Verwendung in dynamischem SQL :

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;

Aufruf:

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

SELECT f_min_id('foo');

Wichtige Punkte

-> SQLfiddle-Demo