私は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;