Re: SELECT in a function != SELECT ?

Поиск
Список
Период
Сортировка
Искать
От
Jan Wieck
Тема
Re: SELECT in a function != SELECT ?
Дата
Msg-id
200204251353.g3PDrLd24680@saturn.janwieck.net
Ответ на
Список
Дерево обсуждения
Re: SELECT in a function != SELECT ? Joe Conway <mail@joeconway.com>
Re: SELECT in a function != SELECT ? David Stanaway <david@stanaway.net>
Re: SELECT in a function != SELECT ? Jan Wieck <janwieck@yahoo.com>
Joe Conway wrote:
> Ian Morgan wrote:
> > CREATE FUNCTION get_colname (name,smallint)
> > RETURNS name AS '
> >         SELECT a.attname FROM pg_class c, pg_attribute a
> >         WHERE c.relname = ''$1''
> >         and a.attnum = $2 and a.attrelid=c.oid
> > '
> > LANGUAGE SQL;
> >
> > SELECT get_colname('contacts',3);
> >
> >  get_colname
> > -------------
> >
> > (1 row)
> >
>
> Try this:
>
> test=# CREATE FUNCTION get_colname (name,smallint) RETURNS name AS
> 'SELECT a.attname FROM pg_class c, pg_attribute a WHERE c.relname = $1
> and a.attnum = $2 and a.attrelid=c.oid' LANGUAGE SQL;
> CREATE
> test=# SELECT get_colname('foo',3);
>   get_colname
> -------------
>   f3
> (1 row)
>
> The $1 is already known to be a name, so you don't want the '' around it
> in the function definition.
   Not because it's known to be a name, but because enclosing it   into quotes makes it the literal string '$1' instead  of  the   parameter passed in.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



В списке pgsql-sql по дате отправления
От: Bruno Ricardo Sacco
Дата:
Сообщение: Pl/pgSQL Question.
От: Stephan Szabo
Дата:
FAQ