Всем привет!
Столкнулся с такой проблемой.
У меня есть таблица tags
TABLE "public.tags" COLUMN | Type | Modifiers -----------+-----------------------+--------------------------------------------------- id | integer | NOT NULL DEFAULT NEXTVAL('tags_id_seq'::regclass) tagname | character varying(50) | NOT NULL descr | text | NOT NULL lvl | smallint | NOT NULL DEFAULT 0 parent_id | integer | NOT NULL DEFAULT 0 cnt | integer | NOT NULL DEFAULT 0 author_id | integer | NOT NULL DEFAULT 1
Есть такая функция:
CREATE OR REPLACE FUNCTION GetTagsById2 (id integer) returns SETOF "tags" AS $$ SELECT * FROM tags WHERE id= $1; $$ LANGUAGE 'sql' VOLATILE SECURITY DEFINER;
При выполнении функции, например SELECT GetTagsById2(2);
Она возвращает 1 поле - строку, в которой содержиться текст: (2,"Литература","Литература",1,1,0,1)
Можно ли сделать так, что бы функция вернула не 1 поле со строкой, содержащей 7 полей таблицы tags, а 7 полей. В каждом поле, соответственно свой параметр?
Я знаю один выход: дописать в функцию OUT параметры и селект сделать с присвоением переменных. Но, может можно как-то обойтись без этого? Что бы не писать огромный селект с переменными и прочим. Что бы был какой-то независимый от кол-ва полей вариант. Ну, или, если зависимый, то он возвращал бы результат так, как я описал.
Спасибо
Не
Не оно?
http://postgresql.ru.net/docs/FAQ_russian.html#item4.18
Спасибо
Да я давно решил проблему, не мог никак отписаться сюда для других Сайт глючил что-то
Спасибо за содействие )
Решение
Решил проблему очень просто
select * from GetTagsById2(2);