Jacques Nogueira dos Santos escreveu:
> 
> 
> Pessoal estou com problemas para chamar essa function.
> A function é criada, o que acontece é que não consigo chama-la para 
> execução.
>  
>  
>  
> 
> CREATE OR REPLACE FUNCTION financeiro.fn_fornec()
>   RETURNS record AS
> $BODY$
> create temp sequence rownum;
> select nextval('rownum') as rownum
>      , trim(lower(mneu_for)) as mneu_for
>      , trim(nome_for) as nome_for
> from sbd95.fornec;
> $BODY$
>   LANGUAGE 'sql' VOLATILE;
> ALTER FUNCTION financeiro.fn_fornec() OWNER TO postgres;
>  
> 
> O código de criação da sequencia temporária e o select, se executados 
> sozinhos funcionam:
>  
> create temp sequence rownum;
> select nextval('rownum') as rownum
>      , trim(lower(mneu_for)) as mneu_for
>      , trim(nome_for) as nome_for
> from sbd95.fornec;
>  
> 
> Mas gostaria de colocar esse código dentro de uma function.
> Quando faço o select para executar a function e trazer os valores dá o 
> seguinte erro:
>  
> 
> select * from financeiro.fn_fornec();
>  
> 
> ERROR: a column definition list is required for functions returning "record"
> SQL state: 42601
>  
>  
>  
> 
> Como que eu faço para que ele me retorne os valores?Obs:Preciso que 
> traga o rownum por motivo do banco ser antigo.
> 


Tente:
SELECT * FROM financeiro.fn_fornec() AS (a int, b varchar, c 
varchar);

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a