Janser
Boa tarde.

Quando utilizo return table com a sentença a abaixo recebo uma mensagem de
erro.

Sentença: return query select t1.nome_tabela from
dblink_exec(connection_string, sentenca_sql) as t1(nome_tabela character
varying(31));

ERRO:  uma lista de definição de colunas somente é permitida para funções
que retornam "record"

Se executo a sentença conforme de outra maneira conforme é sugerido na
mensagem erro, recebo outro erro diferente.

Sentença:  return query select * from dblink_exec(connection_string,
sentenca_sql);
ERRO:  structure of query does not match function result type
DETAIL:  Tipo text retornado não corresponde ao tipo character varying
esperado na coluna 1.

O return table da minha função é  "RETURNS table (nome_tabela character
varying)".

O erro parece ser meio óbvio, mas não é....

Aguardo considerações e desde já agradeço pela atenção.




> 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
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 

Atenciosamente,

André Geraldo dos Santos
Certified Delphi® Developer XE2
Analista Desenvolvedor e Consultor
Belo Horizonte / Minas Gerais
E-mail:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a