我的功能如
CREATE OR REPLACE FUNCTION task_manager(task integer, params text)
RETURNS integer AS $$
BEGIN
IF task = 1 THEN
<<lab1>>
-- some work 1
ELSIF task = 2 THEN
-- some work 2
-- need to exec 'some work 1'
GOTO lab1;
END IF;
RETURN null;
END;
$$ LANGUAGE plpgsql;
由于GOTO语法,GOTO无法正常工作。
有什么办法吗?
答案 0 :(得分:0)
如果我理解你正确,你总是需要做&#34; work1&#34;,如果task = 2,那么先做work2。
所以你每次都可以做工作..
[编辑]根据您的评论;尝试使用多个IF语句
CREATE OR REPLACE FUNCTION task_manager(task integer, params text)
RETURNS integer AS $$
BEGIN
IF task = 1 OR task = 2 THEN
-- some work 1
END IF;
IF task = 2 THEN
-- some work 2
END IF;
RETURN null;
END;
$$ LANGUAGE plpgsql;