Hi,
many thanks for this suggestion. But the problem with this is that you have to know which columns are returned when you call the function.
Regards
Dirk
-- Dirk Mika Software Developer
|
mika:timing GmbH Strundepark - Kürtener Str. 11b 51465 Bergisch Gladbach Germany
|
fon +49 2202 2401-1197 dirk.mika@mikatiming.de www.mikatiming.de
|
AG Köln HRB 47509 * WEEE-Reg.-Nr. DE 90029884 Geschäftsführer: Harald Mika, Jörg Mika |
Von: Christoph Moench-Tegeder <cmt@burggraben.net>
Datum: Freitag, 13. November 2020 um 18:23
An: Dirk Mika <Dirk.Mika@mikatiming.de>
Cc: "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
Betreff: Re: PostgreSQL equivalent to Oracles ANYDATASET
SELECT * FROM TABLE(series_pkg.get_results(1));
The purpose of this function is to provide a DATASET, which has
different columns in the result depending on the passed parameter.
Is there any way to achieve something similar in PostreSQL?
testing=# CREATE OR REPLACE FUNCTION public.rr(p INTEGER)
RETURN NEXT ('k1'::TEXT, 'v1'::TEXT);
RETURN NEXT ('k2'::TEXT, 'v2'::TEXT);
RETURN NEXT (23::INTEGER, 42::INTEGER, 'abc'::TEXT);
RETURN NEXT (42::INTEGER, 23::INTEGER, 'xyz'::TEXT);
testing=# SELECT * FROM rr(2) f(a INTEGER, b INTEGER, c TEXT);
testing=# SELECT * FROM rr(1) f(x TEXT, y TEXT);