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

From: "postgres Emanuel CALVO FRANCO" <postgres(dot)arg(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Retornando un select ...diferencias de Postgres y MSSQL
Date: 2008-10-24 12:47:37
Message-ID: f205bb120810240547i42a6b54bm2ce5082811c32b69@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

CAmbia el nombre de los parametros...

El día 23 de octubre de 2008 19:31, Edwin Quijada
<listas_quijada(at)hotmail(dot)com> escribió:
>
>
>
> *-------------------------------------------------------*
> *-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--
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>

--
Emanuel Calvo Franco
Syscope Postgresql DBA
BaPUG Member

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message postgres Emanuel CALVO FRANCO 2008-10-24 13:19:01 Re: Difundamos el uso de PostgreSQL
Previous Message postgres Emanuel CALVO FRANCO 2008-10-24 12:45:10 Re: Acerca de la traduccion...