Re: Fwd: Consulta no se devuelve en varias columnas

From: Marcos Pastor <marcousweb(at)gmail(dot)com>
To: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Fwd: Consulta no se devuelve en varias columnas
Date: 2016-03-20 21:18:01
Message-ID: CAHm6Qu07c0VcGJoe9f2k+yB41z5op7i8e7NG0NAarO-wywL1VQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Si ya vi la diferencia, muchas gracias

El 20 de marzo de 2016, 15:49, Anthony Sotolongo <asotolongo(at)gmail(dot)com>
escribió:

> Gerardo Herzig te indicaba que podías hacer la llamada con:
>
> (con asterisco, o con los campos que quieras devolver.)
>
>
> por ejemplo select campo1, campo2, etc, from tu_funcion();
>
>
> saludos
>
>
> El 3/20/2016 a las 5:46 PM, Marcos Pastor escribió:
>
> ok entendido y si no quiero todos los campos sino ciertos ahi si tengo que
> usar parametros out y que retorne setof record verdad?? y para llamar a la
> funcion es tambien con select * from public.f_usuario_login( vf_usuario
> character, vf_clave character ) ???
>
> Saludos,
>
>
> El 20 de marzo de 2016, 15:32, Anthony Sotolongo <asotolongo(at)gmail(dot)com>
> escribió:
>
>> Hola marcos hay diferencias en el resultado entre llamarla "select
>> tu_funcion()" y llamarla select * from tu_funcion(), que raro que te
>> devuelva lo mismo. La llamada con tipo RETURN TABLE no es necesario
>> llamarla con AS (esto es para tipo RECORD)
>>
>>
>> mira agarre tu función y le hice una homologa de ejemplo y veras la
>> diferencia de llamarla de una forma u otra:
>>
>> CREATE OR REPLACE FUNCTION test2(
>> nombre_bd text
>>
>> )
>> RETURNS table(nombre text , dba int, codificacion int ) AS
>> $BODY$
>> declare
>> bd text;
>>
>>
>> begin
>> if not exists (select * from pg_database where datname=nombre_bd) then
>> raise exception 'La Base de datos % no existe en nuestra base de
>> datos.', nombre_bd;
>> else
>> select datname into bd from pg_database where datname=nombre_bd and
>> datallowconn='TRUE';
>> if not found then
>> raise exception 'La base de datos ingresada,no pormite conexion';
>> else
>>
>> return query select datname ::text , datdba::int , encoding::int
>> from pg_database where datname=nombre_bd;
>>
>> end if;
>>
>> end if;
>> end;$BODY$
>> LANGUAGE plpgsql VOLATILE
>> COST 100;
>>
>> prueba llamandola de forma distinta y compara el resultado:
>> ---llamada 1
>> select test2('postgres');
>>
>> ---llamada 2
>> select * from test2('postgres') ;
>>
>>
>> saludos
>>
>> PD: creo que no me entendiste en el correo anterior donde te dije que la
>> llamaras: select * from public.f_usuario_login( vf_usuario character,
>> vf_clave character ) ----- :(
>>
>>
>>
>>
>>
>> El 3/20/2016 a las 4:50 PM, Marcos Pastor escribió:
>>
>>> Que tal Anthony si de las 2 formas intente tambien usando AS y sale lo
>>> que muestro en la nueva imagen
>>>
>>> Saludos,
>>>
>>>
>>>
>>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin De La Cruz 2016-03-20 22:29:03 Re: Inconveniente con restaurar respaldo
Previous Message Anthony Sotolongo 2016-03-20 20:49:39 Re: Fwd: Consulta no se devuelve en varias columnas