Gracias Jaime:
Como tu dices debería pero solo me retorna la primera, ciertamente tenias razón como no se me ocurrió antes, pero tengo una duda desde hace tiempo, lo vi en algún hilo en esta comunidad pero no me quedo claro, que es mas eficiente retornar un conjunto de registros con sql o en plpgsql con un for loop return next, claro que con conjuntos de pocos registros o base de datos pequeñas no creo que haya mucha diferencia pero cuando se trata de gran cantidad de registros digamos un millonm de registro que es mas eficiente cual de las dos alternativas es mas eficiente.

gracias por la ayuda y los comentarios.
Jaime Casanova escribió:
2008/9/15 jalvarez <[EMAIL PROTECTED]>:
Hola a todos.
     Necesito una manito en esto quiero devolver son conjuntos de registros
en una misma funcion, algo asi como un union pero con for loop y record,
intente hacer algo como lo que sigue pero solo me retorna el primer conjunto
mas no el segundo


funciona para mi... algo estas haciendo mal... seguro que es esa la
funcion que estas ejecutando?


  for registrosini in select campo1,campo2,campo3  from tabla1  loop
              return next registrosini;

  end loop;
  for registros in select campo1,campo2,campo3  from tabla2  loop
            return next registros;
  end loop;

esto parece un poco elaborado... porque no simplemente?

for registros in select campo1, campo2, campo3 from tabla1
                      union all
                      select campo1, campo2, campo3 from tabla2
loop
     return next registros;
end loop;


o mejor aun:

create function funcion() returns setof type_tipo as $$
   select campo1, campo2, campo3 from tabla1
    union all
   select campo1, campo2, campo3 from tabla2;
$$ language sql stable;



begin:vcard
fn:Jeferson J. Alvarez Flores
n:Alvarez Flores;Jeferson J.
org:RENOVA S.A.C.;Dpto. de Sistemas
email;internet:[EMAIL PROTECTED]
tel;work:4854075 - 109
tel;cell:991888207
x-mozilla-html:TRUE
version:2.1
end:vcard

--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a