PostgreSQL - Funcion Que Regresa Un Resultado De Un QUERY

 
Vista:

Funcion Que Regresa Un Resultado De Un QUERY

Publicado por Nicolás (16 intervenciones) el 31/12/2003 22:12:28
Hola Amigos, La Pregunta Es Para Averiguar como hacer que una funcion me regrese el resultado de una consulta.

Esto Si Me Funciona

CREATE FUNCTION fun_dat_cte(numeric) RETURNS mitabla%ROWTYPE AS '
DECLARE
cve_cte ALIAS FOR $1;
resultado RECORD;
BEGIN
SELECT * INTO resultado FROM articulos;
RETURN resultado;
END;'
LANGUAGE 'plpgsql';

Pero el problema es que el resultado no es de una sola atbla sino de 4 relacionadas asi que no puedo usar mitabla%ROWTYPE como dato a regresar por que son de varias el resultado.

De Antemano Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion Que Regresa Un Resultado De Un QUERY

Publicado por Marcelo (6 intervenciones) el 05/01/2004 17:35:46
Te recomiendo que mires la sección de ayuda
PostgreSQL 7.3 Set Returning Functions.

Esto esta en la ayuda de postgres, no es que lo invente yo.
Yo lo probe y funciona

Crea un tipo de lo campos que quieras devolver.

create type holder as (departmentid int, totalsalary int8);

Here we are defining a new type named holder which is a composite type of an integer named departmentid and a bigint named totalsalary. We can then define functions that return sets of this type. For this function we'll write a version in SQL and then a version in PL/pgSQL:

create function SqlDepartmentSalaries() returns setof holder as
'
select departmentid, sum(salary) as totalsalary from GetEmployees() group by departmentid
'
language 'sql';

create or replace function PLpgSQLDepartmentSalaries() returns setof holder as
'
declare
r holder%rowtype;
begin
for r in select departmentid, sum(salary) as totalsalary from GetEmployees() group by departmentid loop
return next r;
end loop;
return;
end
'
language 'plpgsql';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion Que Regresa Un Resultado De Un QUERY

Publicado por leyenda (1 intervención) el 02/10/2006 21:34:32
Crea un tipo especial con create type, el cual contenga lo que va a retornar la fucion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar