Hallo,
ich habe das Problem, ein Prepared Statement nicht in einer Stored Procedure ausführen zu können.
Mein Code sieht folgendermassen aus:
...
PREPARE __insertstatement__ (integer, varchar, varchar) AS
INSERT INTO analysis.test1 ("id", "value", "kling") VALUES ($1, $2, $3);
WHILE t_min <= t_max LOOP
....
FOR result IN SELECT ...
EXECUTE __insertstatement__ (1::integer, 'blubb'::varchar,
'klingwlin'::varchar);
END LOOP;
....
END LOOP;
....
Immer wenn ich die Stored Procedure ausführen möchte, erhalte ich folgende Fehlermeldung:
FEHLER: Funktion __insertstatement__(integer, character varying, character varying) existiert nicht
LINE 1: SELECT __insertstatement__ (1, 'blubb'::varchar, 'klingwlin...
^
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
QUERY: SELECT __insertstatement__ (1, 'blubb'::varchar, 'klingwlin'::varchar)
CONTEXT: PL/pgSQL function "create_site_stats" line 268 at EXECUTE statement
********** Error **********
FEHLER: Funktion __insertstatement__(integer, character varying, character varying) existiert nicht
SQL state: 42883
Hint: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
Context: PL/pgSQL function "create_site_stats" line 268 at EXECUTE statement
Die Argumenttypen sind ordentlich gecastet und der Funktionsnahme ist auch beim Aufruf der Gleiche wie bei der Erstellung des Prepared Statement.
Hat vielleicht irgendjemand eine Idee, was da falsch läuft?
Vielen Dank