Hi,
Hat jemand ne Idee, wie sich mein Problem loesen laesst?
Ich sitz' jetzt seit 9 Uhr vor Google und finde immer nur Beitraege mit aehnlichen Problemen, zu denen es aber bis jetzt keine Loesung gibt...
- MfG, Keks
UPDATE:
"EXECUTE" ist die Loesung:
Code:
CREATE OR REPLACE FUNCTION test(character varying, character varying)
RETURNS character varying AS
$$
BEGIN
RETURN
(
SELECT "value"
FROM $1
WHERE "key" = $2
LIMIT 1
);
END;
$$
LANGUAGE 'plpgsql' VOLATILE;
Code:
SELECT test('tabelle', 'key')
Code:
ERROR: syntax error at or near "$1"
LINE 1: SELECT ( SELECT "value" FROM $1 WHERE "key" = $2 LIMIT ...
^
QUERY: SELECT ( SELECT "value" FROM $1 WHERE "key" = $2 LIMIT 1 )
CONTEXT: SQL statement in PL/PgSQL function "test" near line 7
Hat jemand ne Idee, wie sich mein Problem loesen laesst?
Ich sitz' jetzt seit 9 Uhr vor Google und finde immer nur Beitraege mit aehnlichen Problemen, zu denen es aber bis jetzt keine Loesung gibt...
- MfG, Keks

"EXECUTE" ist die Loesung:
Code:
CREATE FUNCTION test(character varying, character varying)
RETURNS character varying AS
$BODY$
DECLARE
result character varying;
BEGIN
EXECUTE 'SELECT "value" FROM "'
|| quote_ident($1)
|| '"."settings" WHERE "key" = '''
|| $2
|| ''' LIMIT 1' INTO result;
RETURN result;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;