我是 postgres 的新手,遇到了一个在 Stackoverflow (?) 上似乎找不到的错误。我正在尝试编写一个函数,当一个人有资格获得工作时返回 true,否则返回 false。这会引发“错误:当函数不返回集合时,ROWS 不适用。” 在西班牙语中找到了一些东西——但在 SO 上什么也没有。有人可以解释一下吗?
CREATE OR REPLACE FUNCTION "isPersonQualifiedForJob"(pid integer, jid integer)
RETURNS bit AS
'
IF
(SELECT count(*) FROM "getSkillsForJob"("jid") "j" WHERE
NOT EXISTS (
SELECT 1 FROM "getSkillsForPerson"("pid") "p" WHERE "j"."SkillID"="p"."SkillID"
)
)> 0
THEN
return 0;
ELSE
return 1;
END IF;
'
LANGUAGE sql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION "isPersonQualifiedForJob"(integer)
OWNER TO postgres;