OUT-Parameter, Composite Value und .*

Hallo,

Frage 1: erzeuge ich mit den OUT-Parameter eine Zelle bzw Spalte vom Datentyp Composite?

Frage 2: select ( foo() ).; erzeugt aus einer Spalte (kommaseparierte Liste) mehrere Spalten (für jeden Listeneintrag eine Spalte)
Auf welcher Manual-Seite wird dieses .
erklärt?

Mein Script:

CREATE or replace FUNCTION 	rechne	
	(
		IN wert1 decimal, 
		OUT wert2 decimal,
		OUT wert3 decimal
	)
	as
	 $$
			BEGIN
				wert2 = wert1 * 2;
				wert3 = wert1 * 3;
			END;
		$$
LANGUAGE plpgsql	 ;

Shell1:

postgres=# select rechne(2);
 rechne
--------
 (4,6)

Shell2:

postgres=#  select (rechne(2)).*;
 wert2 | wert3
-------+-------
     4 |     6

Danke

Ich denke Du suchst das hier: PostgreSQL: Documentation: 16: 43.3. Declarations was wiederum auf eine genauere Erklärung unter PostgreSQL: Documentation: 16: 38.5. Query Language (SQL) Functions verweist.

Das ist im übrigen nicht wirklich eine Komma-separierte Liste, sondern in der Tat eine Spalte vom Typ “record”.
Nur die Darstellung wird halt so gemacht.

Danke :slight_smile: