Re: problem with plpgsql function
От | Tom Lane |
---|---|
Тема | Re: problem with plpgsql function |
Дата | |
Msg-id | 2418.966008212@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | problem with plpgsql function (Alex Guryanow <gav@nlr.ru>) |
Список | pgsql-general |
Alex Guryanow <gav@nlr.ru> writes: > CREATE FUNCTION all_isbn2( int4 ) RETURNS varchar AS 'DECLARE > i isbn%ROWTYPE; > res varchar; > BEGIN res := ""; > FOR i IN SELECT * FROM isbn WHERE isbn.book_id = $1 LOOP > res := res || i.isbn; > END LOOP; > RETURN res; > END;' LANGUAGE 'plpgsql'; > ERROR: Attribute '' not found > What I'm doing wrong? You need to write BEGIN res := ''''; Double quotes "" imply a variable or column name, not a string literal. You need 4 quotes not 2 because you're inside a ' literal already (you could also write res := \'\' if that seems clearer). It occurs to me that we ought to make a push to consistently use double-quotes not single-quotes in error messages that are reporting names. If the error had been ERROR: Attribute "" not found you might've figured out your mistake without help... regards, tom lane
В списке pgsql-general по дате отправления: