sql >> Database >  >> RDS >> PostgreSQL

Postgres Weergave maken met functie voor recordtype

Bij nader inzien:u hoeft het samengestelde retourtype alleen als volgt te splitsen:

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

Details over toegang tot composiettypen in de handleiding.

Even terzijde:ik zou adviseren om geen haakjes te gebruiken voor je JOINs, tenzij je precies weet wat je doet. Zoals je het hebt, forceer je een bepaald uitvoeringsplan. De kans is groot dat het niet de beste is.

Eerste benadering interpreteerde de foutmelding verkeerd

Wanneer u een functie definieert met RETURNS record (wat ik indien mogelijk vermijd), moet u bij elke oproep een kolomdefinitielijst opgeven, zoals:

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

Ik citeer de handleiding hier :

De schone oplossing is om je functie te veranderen om een ​​bekend type te retourneren in plaats van een anoniem record. Er zijn verschillende manieren om dat aan te pakken, afhankelijk van de omstandigheden. Als je problemen hebt met het herschrijven van je functie, open dan een andere vraag.




  1. PostgreSQL installeren op Ubuntu voor Ruby on Rails

  2. Een nieuwe kolom toevoegen aan een tijdelijke tabel

  3. Vind ongeldige datums in SQL Server 2008

  4. SQLite groeperen op