sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres Opret visning med posttypefunktion

Ved nærmere eftersyn:Du behøver kun at opdele den sammensatte returtype sådan her:

CREATE OR REPLACE VIEW "Sumario" AS 
SELECT ...
 (conta_relatos("Fatores"."ID", "Fatores_1"."ID")).*
FROM ...

Detaljer om adgang til sammensatte typer i manualen.

Som en sidebemærkning:Jeg vil råde dig til ikke at bruge parentes til dine JOINs, medmindre du ved præcis, hvad du laver. Som du har det, fremtvinger du én bestemt eksekveringsplan. Chancerne er, at det ikke er den bedste.

Første tilgang misfortolkede fejlmeddelelsen

Når du definerer en funktion med RETURNS record (hvilket jeg undgår, når det er muligt), skal du angive en kolonnedefinitionsliste med hvert opkald, f.eks.:

SELECT * FROM conta_relatos(1,2) AS f(col1 int, col2 text, ...)

Jeg citerer manualen her :

Den rene løsning er at ændre din funktion for at returnere en velkendt type i stedet for en anonym registrering. Der er forskellige måder at gøre det på, alt efter omstændighederne. Hvis du har problemer med at omskrive din funktion, skal du åbne et andet spørgsmål.




  1. MySQL-fejlkode:1030Fik fejl -1 fra lagermotoren; Jeg har forsøgt at slette data fra min database

  2. SQL-fejl:ORA-00942 tabel eller visning findes ikke

  3. Mit webhostingfirma siger, at der er noget galt med PHP-kode

  4. Listevisning fra Sqlite i Android