CREATE OR REPLACE FUNCTION "getArticulos"(refcursor)
RETURNS refcursor AS
$BODY$
BEGIN
CREATE TEMP TABLE "Temporal" AS
SELECT a."idArticulo", SUM("Stock") AS "Stock"
FROM "ArticuloMarca" AS am, "Articulo" AS a
WHERE a."idArticulo" = am."idArticulo"
GROUP BY a."idArticulo"
ORDER BY a."idArticulo";
OPEN $1 FOR
SELECT DISTINCT(a."idArticulo"), a."Nombre", a."Descripcion", a."idFamilia", f."Nombre" AS "Familia",a."idTipo", t."Nombre" AS "Tipo", tmp."Stock", a."MinStock", a."MaxStock"
FROM "Articulo" AS a, "ArticuloMarca" AS am, "Familia" AS f, "Tipo" AS t, "Temporal" AS tmp
WHERE a."idFamilia" = f."idFamilia" AND a."idTipo" = t."idTipo" AND a."idArticulo" = tmp."idArticulo"
ORDER BY a."idArticulo";
RETURN $1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
這就是我的功能,但我一直在嘗試不使用TEMP TABLE,insted我需要的東西,我不必刪除在一個sesion。PostgreSQL功能溫度表替代解決方案
我試着用RECORD,一種叫做refcursor的東西,但是我得到了一行,我需要整個結果。我可以使用什麼想法?
我試着在RETURN $ 1後面和之前添加DROP TABLE「Temporal」;但它不起作用。
正是我需要的! thx老兄! – dbncourt 2012-04-14 22:13:05