Correctly quoting inside plpgsql functions

Поиск
Список
Период
Сортировка
От alberto bolchini
Тема Correctly quoting inside plpgsql functions
Дата
Msg-id 3CC1473B.8040401@melloni49.it
обсуждение исходный текст
Ответы Re: Correctly quoting inside plpgsql functions  ("Joshua b. Jore" <josh@greentechnologist.org>)
Список 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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: algebraic rewriting
Следующее
От: "Joshua b. Jore"
Дата:
Сообщение: Re: Correctly quoting inside plpgsql functions