Re: How to quote in plpgsql function for Execute dynamic queries

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: How to quote in plpgsql function for Execute dynamic queries
Дата
Msg-id 10960.998146267@sss.pgh.pa.us
обсуждение исходный текст
Ответ на How to quote in plpgsql function for Execute dynamic queries  ("Phillip J. Allen" <paallen@attglobal.net>)
Список pgsql-novice
"Phillip J. Allen" <paallen@attglobal.net> writes:
>         dpsql := 'Select d.a_parm, d.f_parm, d.deltax, d.deltay FROM c_g_datum
> WHERE d.datum_id = ' || $1 || ';';      --this sql will only return 1 record

> So the real question is how do I formate the dpsql string.

You need to double or backslash-escape all those ' marks.  Remember that
what you are writing is itself one big string literal --- that's how
CREATE FUNCTION sees it, anyway.  The form depicted above is what you
want the value of the string literal to be, after the string-literal
parser gets done with it.  So, use '' or \' anywhere you need plpgsql
to see a '.

Somewhere there is a handy page that illustrates how many quote marks
to write in various complicated situations.  I thought it was at
http://techdocs.postgresql.org/ but didn't have much luck finding it.
Anyone remember what I'm thinking of?

            regards, tom lane

В списке pgsql-novice по дате отправления:

Предыдущее
От: "Phillip J. Allen"
Дата:
Сообщение: How to quote in plpgsql function for Execute dynamic queries
Следующее
От: "booli2"
Дата:
Сообщение: sequence properties