RE: Retornando un select ...diferencias de Postgres y MSSQL

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Retornando un select ...diferencias de Postgres y MSSQL
Date: 2008-10-23 19:31:29
Message-ID: BLU137-W45E8707A3938931EC3E06EE3280@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-849-8087

* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
*-------------------------------------------------------*

> Date: Thu, 23 Oct 2008 12:24:33 -0500
> From: jcasanov(at)systemguards(dot)com(dot)ec
> To: listas_quijada(at)hotmail(dot)com
> Subject: Re: [pgsql-es-ayuda] Retornando un select ...diferencias de Postgres y MSSQL
> CC: pgsql-es-ayuda(at)postgresql(dot)org
>
> On 10/23/08, Edwin Quijada wrote:
>>
>> Me ha tocado trabajar en estos dias con MSSQL y he visto algo interesante y es que los Store procedure pueden retornar un set de datos , un select, pero con la desventaja de que este no puede ser usado en un select.
>> A raíz de esto me gustaría hacer una pregunta a los que están cerca del código Postgres, Alvaro y Jaime, cual es la razon mas técnica de porque Postgres no puede hacer esto,retornar una selección, sin tener que declarar un tipo.
>> Esto me asalta porque me lo han preguntado varias veces y la verdad la respuesta que he dado no se si me convence mucho o estoy equivocado.
>>
>
> si puedes...
>
> CREATE FUNCTION fsetdatos() RETURNS SETOF record AS
> begin
> return query select * from tabla;
> return;
> end;
> LANGUAGE plpgsql;
>
>
> claro que en el select deberas hacer algo como: "select * from
> fsetdatos(campo1 tipo1[, ...])"
>
> o puedes declarar los tipos como parametros OUT
>
> CREATE FUNCTION fsetdatos(out campo1 tipo1[, ...]) RETURNS SETOF record AS
> begin
> return query select * from tabla;
> return;
> end;
> LANGUAGE plpgsql;
>
> y en el select solo haces: "select * from fsetdatos()"
>
estoy tratando de hacer lo que dices Jaime pero obtengo lo ssigte:

CREATE or replace FUNCTION fsetdatos(out seqnum INTEGER,out acd SMALLINT, out row_date date) RETURNS SETOF record AS
$body$
begin
return query select seqnum,acd,row_date from cms.call_rec limit 5;
return;
end;
$body$
LANGUAGE plpgsql;

select * from fsetdatos()

Cuando hago esto solo consigo valores nulos por todos lados.Es decir, todo lo que selecciona la funcion son valores nulos que no se de donde provienen porque al hacer el select solamante consigo la data como es.

> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Asesoría y desarrollo de sistemas
> Guayaquil - Ecuador
> Cel. +59387171157
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán

_________________________________________________________________
Get Windows Live and get whatever you need, wherever you are. Start here.
http://www.windowslive.com/default.html?ocid=TXT_TAGLM_WL_Home_082008

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Romero 2008-10-23 20:52:36 parámetro para utilizar con new
Previous Message Edwin Quijada 2008-10-23 19:16:48 RE: Retornando un select ...diferencias de Postgres y MSSQL