test=*# create or replace function f_test(in i int,out a int, out b int) returns record as $$ begin raise notice 'bin in Funktion f_test()'; a:=i*2; b:=i*3; return; end;$$language plpgsql;
CREATE FUNCTION
Zeit: 0,531 ms
test=*# create or replace function f_test2() returns int as $$ begin execute 'select * from f_test(2);'; return 1; end; $$ language plpgsql;
CREATE FUNCTION
Zeit: 0,496 ms
test=*# select * from f_test2();
NOTICE: bin in Funktion f_test()
CONTEXT: SQL statement "select * from f_test(2);"
PL/pgSQL function "f_test2" line 1 at EXECUTE statement
f_test2
---------
1
(1 Zeile)
Zeit: 0,577 ms
test=*#
Man beachte die Ausgabe von raise notice als Beweis, das die Funktion via EXECUTE ausgeführt wird.