About a PL/pgSQL function
| От | Ferdinand Smit |
|---|---|
| Тема | About a PL/pgSQL function |
| Дата | |
| Msg-id | 200206061738.51230.ferdinand@telegraafnet.nl обсуждение исходный текст |
| Ответы |
Re: About a PL/pgSQL function
|
| Список | pgsql-admin |
Hi,
I've created a little function, that returns an id and creates one if it does
not exist.
DROP FUNCTION fn(text,text);
CREATE OR REPLACE FUNCTION fn(text,text) RETURNS INT AS '
DECLARE
record_id INTEGER;
BEGIN
SELECT "id" INTO record_id FROM $1 WHERE def = $2 ;
IF NOT FOUND THEN
INSERT INTO $1 (def) VALUES($2);
SELECT "id" INTO record_id FROM $1 WHERE def = $2;
END IF;
RETURN record_id;
END;
' LANGUAGE 'plpgsql';
When i run it i get:
NOTICE: Error occurred while executing PL/pgSQL function fn
NOTICE: line 5 at select into variables
ERROR: parser: parse error at or near "$1"
When i create a function with a "static" table name, it works fine.
EXECUTE does not allow SELECT INTO, so does anyone have an other solution?
Ferdinand
В списке pgsql-admin по дате отправления: