Data: 25 de abril de 2014 16:28
Assunto: [pgbr-geral] Função para retornar múltiplas linhas envolvendo
dblink
Para: Comunidade PostgreSQL Brasileira <pgbr-geral@listas.postgresql.org.br>

>Caros

>Boa tarde.



Estou fazendo uma função que devolverá múltiplas linhas, essa função
consultará dados em outro banco através de dblink e será consumida por uma
aplicação e executada através do comando a seguir. Exemplo: select * from
fn_x(timestamp, varchar)



A função a princípio retornará apenas uma coluna, mas futuramente podem
surgir novas colunas ou até mesmo outras funções de comportamento
semelhante. Ao tratar e retornar os dados obtidos da consulta realizada com
dblink estou tendo dificuldades para acertar o tipo de retorno correto para
função.



Já fiz algumas tentativas com return table e como parâmetros do tipo out,
mas não obtive sucesso.



Algum colega poderia dar um exemplo prático disso.


Boa tarde André, nos casos de retorno de multiplas linhas normalmente
utilizo RETURNS TABLE

como exemplo abaixo:

CREATE FUNCTION fn_vendas_periodo (

  p_filiali integer,

...

)

RETURNS TABLE (

  tid text,

  tfilial varchar,

...

) AS

$body$

BEGIN

  -- Cálculo a sequerem realizados

  ....

---utilizar o return necessário para sua função

RETURN NEXT expression;

RETURN QUERY query;

RETURN QUERY EXECUTE command-string [ USING expression [, ... ] ];


END;

$body$

LANGUAGE 'plpgsql'

....


Espero ter ajudado.

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

Responder a