2008/8/3 Ana María Mandiola Fernández <[EMAIL PROTECTED]>: > HOLa !! > soy nuevo en lenguaje de bdatos, alguien que me ayude con una funcion que > devuelva mas de un registro de una tabla, he intentado con record, > refcursores y ninguna me sale , a lo mas tiro una fila pero tengo 8 filas, > registros tuplas, en mi tabla prestadora, como lo hago??' tengo esta funcion > q devuelve una sola fila. >
nuevo, eh? leer el manual no hace daño ;) > CREATE OR REPLACE FUNCTION p5() > RETURNS record AS > $BODY$DECLARE > algo RECORD; > BEGIN > > SELECT INTO algo * FROM prestadora; > > return algo; > END;$BODY$ > LANGUAGE 'plpgsql' > CREATE OR REPLACE FUNCTION p5() RETURNS SETOF prestadora AS $BODY$ SELECT INTO algo * FROM prestadora; $BODY$ LANGUAGE 'sql' ahora que si lo quieres hacer en plpgsql (posiblemente porque quieras procesar datos antes de devolverlos) CREATE OR REPLACE FUNCTION p5() RETURNS SETOF prestadora AS $BODY$ DECLARE algo RECORD; BEGIN for algo in SELECT * FROM prestadora loop return next algo; end loop; return; END; $BODY$ LANGUAGE 'plpgsql' o en 8.3 CREATE OR REPLACE FUNCTION p5() RETURNS SETOF prestadora AS $BODY$ BEGIN return query select * from prestadora; END; $BODY$ LANGUAGE 'plpgsql' o con cursores o de 1001 formas mas... la clave estuvo en el SETOF -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Guayaquil - Ecuador Cel. (593) 87171157 -- TIP 8: explain analyze es tu amigo