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;
それが私の機能ですが、一時テーブルを使用しないようにしています。セッションで削除する必要のないものが必要です。
refcursor と呼ばれるものである RECORD を試してみましたが、1 行しか取得できず、結果全体が必要です。私は何を使うことができますか?
RETURN $1; の前後に DROP TABLE "Temporal" を追加してみました。しかし、うまくいきません。