Хранимка в постгрес

laki

Можно пример хранимки эквивалентной select * from SomeTable ? для постгресс.

eduard615



create function tableSelect returns setof foo as '
select * from foo;
' language 'sql';


это хочешь? только нафига такие извращения?

laki

да а вот такую штуку как запихнуть select t.num, tt.num from t1 t left join t2 tt USING(num);

eduard615


create function tableSelect(text,text,text) returns setof record as '
declare
r record;
begin
for r in execute ''select t.''||$3||'', tt.''||$3||'' from ''||$1||'' as t left join ''||$2||'' as tt using(''||$3||'')'' loop
return next r;
end loop;
return;
end' language 'plpgsql';



avtomarket=> SELECT * FROM tableSelect('class','class','id') as t(id int,id2 int);
id | id2
----+-----
0 | 0
1 | 1
(записей: 2)


если по кошерному, то надо курсор возвращать

laki

thx. блин засада я пока локально тестирую и у меня postgres под cygwin стоит, и поэтому 'plpgsql' язык надо импортировать. не в курсах 'plpgsql' включен в дефолтный пакет постгреса?

eduard615

про цигвин не знаю. возьми нативную бету под винду, там вроде все по человечески.
Оставить комментарий
Имя или ник:
Комментарий: