我正在尝试使用 sql (postgre) 创建一个存储过程,该过程将返回多个选定的标题。
经过一些试验,我已经到了可以运行程序但只返回第一个标题的地步。
我的程序看起来像这样:(我在 idsite 和 idmodele 上使用设置参数进行测试)
-- Function: select_metacontenu_titre(integer, integer)
-- DROP FUNCTION select_metacontenu_titre(integer, integer);
CREATE OR REPLACE FUNCTION select_metacontenu_titre(
pidmodele integer,
pidsite integer)
RETURNS CHARACTER VARYING AS
$BODY$
DECLARE
result CHARACTER VARYING;
BEGIN
SELECT titre INTO result
FROM t_metacontenu FULL JOIN t_dossiercontenu
ON t_metacontenu.iddossiercontenu = t_dossiercontenu.iddossiercontenu
AND t_metacontenu.idsite = t_dossiercontenu.idsite
WHERE t_metacontenu.idsite = 78158
AND t_dossiercontenu.idmodele = 102;
RETURN result;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 1;
ALTER FUNCTION select_metacontenu_titre(integer, integer)
OWNER TO in01;
它返回这个:
但我希望这样:
我最初想使用 SETOF 但在调查后我认为它不符合我的需求,我知道 SETOF 会投我的回报。然后我看到了 TABLE 选项,但找不到实现它的方法。
是使用 TABLE 去这里的方式吗?任何意见是极大的赞赏。
谢谢你的时间 :)