CAmbia el nombre de los parametros...

El día 23 de octubre de 2008 19:31, Edwin Quijada
<[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
>> To: [EMAIL PROTECTED]
>> Subject: Re: [pgsql-es-ayuda] Retornando un select ...diferencias de 
>> Postgres y MSSQL
>> CC: pgsql-es-ayuda@postgresql.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
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a