Hallo,
ich möchte in meiner SQL-Funktion eine SELECT-Anweisung mithilfe einer Variablen ausführen, die kurz vorher durch eine andere SELECT-Anweisung mit einem Wert belegt worden ist. Ich habe dazu folgendes geschrieben:
SELECT tablename INTO tab_name FROM tabledatasets WHERE id = table_id;
SELECT zeit INTO start_interval FROM quote_ident(tab_name) ORDER BY zeit DESC;
Nun kommt beim Ausführen der Funktion folgender Fehler:
ERROR: column “zeit” does not exist
SQL Status:42703
Kontext:SQL statement “SELECT zeit FROM quote_ident( $1 ) ORDER BY zeit DESC”
PL/pgSQL function “tabledataset_inserttodatatset_trigger” line 24 at select into variables
Nun hatte ich probiert die 2. Anweisung abzuändern
EXECUTE ''SELECT zeit INTO '' || start_interval || '' FROM '' || quote_ident(tab_name) || '' ORDER BY zeit DESC'';
Fehler:
ERROR: cannot EXECUTE a null querystring
SQL Status:22004
Kontext:PL/pgSQL function “tabledataset_inserttodatatset_trigger” line 24 at execute statement
Eine weitere Änderung zu
PERFORM ''SELECT zeit INTO '' || start_interval || '' FROM '' || quote_ident(tab_name) || '' ORDER BY zeit DESC'';
brachte nun beim Ausführen zwar keinen Fehler mehr, allerdings wurde die Variable start_interval auch nicht mit einem Wert belegt. Ich hoffe mir kann jemand helfen, wie ich erfolgreich der Variable einen Wert aus der SQL-Abfrage zuordnen kann
gruß chuqa