Verwendung von EXECUTE

Hallo,
ich versuche mich mit EXECUTE vertraut zu machen, scheitere jedoch schon an einem simplen Beispiel:

RETURN EXECUTE('SELECT ’ || ‘2’);

ergibt bei mir:
ERROR: function execute(text) does not exist
LINE 1: SELECT EXECUTE('SELECT ’ || ‘2’)
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
QUERY: SELECT EXECUTE('SELECT ’ || ‘2’)
CONTEXT: PL/pgSQL function fkt.uc(text,text,json) line 13 at RETURN
********** Fehler **********

Ist EXECUTE keine Standardfunktion oder bezieht sich die Fehlermeldung auf den auszuführenden String?

Danke für Hilfe!
Rainer

ok … habe gefunden, dass dies funktioniert:

EXECUTE('SELECT ’ || ‘2’) INTO t;
RETURN t;

mir leuchtet aber nicht ein, warum ohne den Umweg über t (übrigens habe ich natürlich ein DECLARE t text;) dies nicht funktioniert.

return query execute …

test=*# create or replace function my_test() returns setof text as $$declare t text; begin t:=E'select \'foo\' || \'bar\''; return query execute t;end;$$language plpgsql;
CREATE FUNCTION
test=*# select * from my_test();
 my_test
---------
 foobar
(1 row)

PS.: lange nix mehr von Dir gehört :wink:

aah :slight_smile: danke. ansonsten … ich versuchs mal unter der bekannten tel-nr …