CREATE OR REPLACE FUNCTION tst (text)
RETURNS record AS $$
DECLARE
result record;
BEGIN
SELECT INTO result 5 AS id, 'testname' AS name, 'C' AS typ;
return result;
END; $$ LANGUAGE 'plpgsql';
SELECT tst('');
Leider stehen alle drei Werte in einer Spalte
tst
(5,testname,C)
Ich benötige jeden Wert in einer Spalte. Etwa so
SELECT 5 AS id, 'testname' AS name, 'C' AS typ;
id | name | typ
----±---------±----
5 | testname | C
Ich habe schon versucht statt des Records eine Tabelle zurückzugeben - kein Erfolg.
Eine Unterabfrage brachte lediglich Syntaxfehler.
Eine Antwort würde mich sehr freuen…
VG Ronny
test=# create or replace function bla() returns record as $$ declare r record; begin select into r 1 as a, 3 as b; return r; end; $$language plpgsql;
CREATE FUNCTION
Zeit: 0,388 ms
test=*# select * from bla() as (a int, b int);
a | b
---+---
1 | 3
(1 Zeile)