In Oracle dienen pipelined table functions dazu, PL/SQL collections als Tabellen zu verkleiden und darauf mit einfachem SQL zugreifen zu können. Hier ein kleines Beispiel dazu, wie man in postgres ein ähnliches Verhalten erreichen kann:
create or replace function f_pipeline_test(lines_limit int) returns table ( table_schema text , table_name text ) as $func$ declare sqltext text = 'select table_schema::text, table_name::text from information_schema.tables where table_schema = ''pg_catalog'' limit ' || lines_limit; begin return query execute sqltext; end $func$ language plpgsql; select * from f_pipeline_test(5); table_schema | table_name -------------+-------------- pg_catalog | pg_statistic pg_catalog | pg_type pg_catalog | pg_roles pg_catalog | pg_shadow pg_catalog | pg_authid (5 Zeilen)
Keine Kommentare:
Kommentar veröffentlichen