Correctly quoting inside plpgsql functions
От | alberto bolchini |
---|---|
Тема | Correctly quoting inside plpgsql functions |
Дата | |
Msg-id | 3CC1473B.8040401@melloni49.it обсуждение исходный текст |
Ответы |
Re: Correctly quoting inside plpgsql functions
|
Список | pgsql-novice |
Hi all. I'm trying to create a function which should return a cursor (to be used from a jdbc connection) and I'm experiencing problems in quoting (I believe) correctly inside the function: <code> jsg_2=# CREATE FUNCTION myfun(char(2)) RETURNS refcursor AS jsg_2-# ' DECLARE jsg_2'# l_lang alias for $1; jsg_2'# l_cursor refcursor; jsg_2'# BEGIN jsg_2'# OPEN l_cursor FOR EXECUTE jsg_2'# ''SELECT * FROM t INNER JOIN i18n ON t.id=i18n.id AND i18n.language_id='' || quote_ident(l_lang) || '' ORDER BY description''; jsg_2'# RETURN l_cursor; jsg_2'# END; jsg_2'# ' LANGUAGE 'plpgsql'; CREATE jsg_2=# select myfun('en',0); NOTICE: Error occurred while executing PL/pgSQL function myfun NOTICE: line 5 at open ERROR: Attribute 'en' not found </code> The Function intially gets parsed, but when called with the parameter, it seems that no quotes are around the first variable. What am I missing? alberto.
В списке pgsql-novice по дате отправления: