【发布时间】:2019-08-03 18:32:46
【问题描述】:
这是示例函数
CREATE OR REPLACE FUNCTION "Membership".status2(membershipid text)
RETURNS "Membership".memberstatus
LANGUAGE plpgsql
AS $function$
declare
_membershipStatus MemberStatus;
total integer;
typeId integer;
startDate date;
endDate date;
groupId integer;
membershipStatus varchar;
BEGIN
Select "TypeId", "StartDate","EndDate" into typeId, startDate, endDate from "Membership"."Memberships" M where M."MembershipId" = membershipId;
if endDate > NOW() then
_membershipStatus.groupid = 3;
_membershipStatus.membershipstatus = 'Expired';
end if;
RETURN _membershipStatus;
END;
$function$
;
昨天我打电话时,这很好用
select status2('gwgwg');
今天我开始执行,突然调用时使用
select "Membership".status2('sdgsd');
我来了
SQL 错误 [42704]:错误:类型“memberstatus”不存在
当然,我尝试添加 "Membership".memberstatus 但结果相同。
自昨天以来没有任何变化,当我测试它时,它工作正常。
我不明白为什么它会再次消失???
我已经遇到了这个问题,并且由于某种原因,一段时间后所有数据类型都消失了(在正常工作 X 分钟后)。它们仍在模式数据类型中,但找不到...(?)
顺便说一句 当我尝试删除数据类型时,我会得到函数依赖于它的信息......但是函数找不到它(起初它工作正常)。
【问题讨论】:
-
我强烈建议不要在 SQL 语句中使用双引号。
-
我希望,但如果没有它,它通常不会找到架构/表。我发现用双引号不存在问题
-
你不应该使用双引号来创建它们。
标签: postgresql plpgsql