PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgres cria visualização com função de tipo de registro


Em uma inspeção mais detalhada:você só precisa dividir o tipo de retorno composto assim:
CREATE OR REPLACE VIEW "Sumario" AS 
SELECT ...
 (conta_relatos("Fatores"."ID", "Fatores_1"."ID")).*
FROM ...

Detalhes sobre como acessar tipos compostos no manual.

Como um aparte:eu aconselharia não usar parênteses para seus JOINs, a menos que você saiba exatamente o que está fazendo. Do jeito que você tem, você está forçando um plano de execução específico. As possibilidades são, não é o melhor.

A primeira abordagem interpretou mal a mensagem de erro


Quando você define uma função com RETURNS record (o que evito quando possível), você deve fornecer uma lista de definição de coluna com cada chamada, como:
SELECT * FROM conta_relatos(1,2) AS f(col1 int, col2 text, ...)

Cito o manual aqui :

A solução limpa é alterar sua função para retornar um tipo bem conhecido em vez de um registro anônimo. Existem várias maneiras de fazer isso, dependendo das circunstâncias. Se você tiver problemas para reescrever sua função, abra outra pergunta.