Si ya vi la diferencia, muchas gracias

El 20 de marzo de 2016, 15:49, Anthony Sotolongo <asotolo...@gmail.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 <asotolo...@gmail.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,
>>>
>>>
>>>
>>
>
>

Responder a