我在 Postgres 中开发一个存储过程,遇到了这样一种情况:我必须根据控制结构的结果访问不同的标签 block 。有什么可行的方法吗?
很抱歉没有立即提供代码。这是我对这个问题的概念解决方案:
BEGIN
IF LotFlag = 1 THEN
IF lotno = '' THEN
RETURN 3;
ELSE
SELECT * FROM "DEDGE_im_tblinventory_unposted"
WHERE "DocRef" = docref
AND "TranCode" = trancode
AND "LotNo" = lotno;
IF NOT FOUND THEN
/*Go to testblock1*/
ELSEIF FOUND THEN
/*Go to testblock2*/
ELSE
/*Go to testblock3*/
END IF;
END IF;
END IF;
END;
<<testblock1>>
BEGIN
RETURN 1;
END;
<<testblock2>>
BEGIN
RETURN 1;
END;
<<testblock3>>
BEGIN
RETURN 1;
END;
最佳答案
使用函数,而不是“GOTO”
IF NOT FOUND THEN
/* call f1() or f(1) */
ELSEIF FOUND THEN
/* call f(2) or f(2) */
ELSE
/* call f3() or f(3) */
END IF;
关于postgresql - 跳转到 plpgsql 函数中的另一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302323/