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 <mailto: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