postgresql - 跳转到 plpgsql 函数中的另一个标签

标签 postgresql label plpgsql

我在 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/

相关文章:

postgresql - 使用 AWS Aurora Postgres 和 aws_lambda.invoke 的事务发件箱模式

image - 如何将条形图.js中的标签更改为图像(图标)

javascript - 如何使用 d3.js 为圆环图中的数据创建标签

postgresql - postgres 中的函数返回许多具有空值的行

postgresql - 如何在 FOR 循环内进行选择以进行进一步计算?

sql - 更新表格的日期和月份

postgresql - 获取带有字符串变量的列

java - 创建 Hibernate 类型以使用 PostgreSQL 保存 JSONObject

r - 基于背景对比度的文本颜色

function - plpgsql:奇怪的函数内隐式转换