Muthukumar.GK schrieb am 19.11.2020 um 09:27: > is it possible to return Multiple results set from procedure/function > on single execution. Please advise me on this. we are planning to > migrate things from sqlserver to postgresql where my existing sql > stored procs will return multiple result set. so we need achieve same > thing in postgresql. You can achieve something like that, but it's a bit cumbersome to consume/use the results: create function get_results() returns setof refcursor as $$ declare c1 refcursor; c2 refcursor; begin open c1 for select * from (values (1,2,3), (4,5,6)) as t(a,b,c); return next c1; open c2 for select * from (values ('one'),('two'),('three'),('four')) as p(name); return next c2; end; $$ language plpgsql; You have to turn off autocommit in order to be able to consume the results. In psql you would get a result with two "unnamed portals" that you need to fetch manually arthur=> \set AUTOCOMMIT off arthur=> select * from get_results(); get_results -------------------- <unnamed portal 1> <unnamed portal 2> arthur=> fetch all in fetch all in "<unnamed portal 1>"; a | b | c ---+---+--- 1 | 2 | 3 4 | 5 | 6 (2 rows) arthur=> fetch all in fetch all in "<unnamed portal 2>"; name ------- one two three four (4 rows) Other SQL clients might make this a bit easier. How exactly you deal with that in your application depends on the programming language you use. I would recommend to take the opportunity of the migration project and refactor your code so that you don't need this. Thomas