plpgsql 中的 Continue 语句不起作用

Continue statement in plpgsql doesn't work

我想继续输出,为什么不行?

set serveroutput on;
declare
code number(2) := 7;
begin
  if not code = 3 or not code = 7 then
     dbms_output.put_line('GO TO ERRORPAGE');
     else
     dbms_output.put_line('CONTINUE...');
  end if;
end; 

您的 if 语句的计算结果将始终为 true,因为代码永远不会同时为 3 和 7。您可能想更改为:

not(code = 3 or code = 7) 

为了进一步阐述,让我们看几个例子。首先让我们根据您的示例假设 code := 7 。在这种情况下,您的 if 语句的两个部分评估如下:

not code = 3 --> True
not code = 7 --> False

由于您至少满足了一个条件,因此 or 语句的计算结果为真。

其次,假设code := 3。在这种情况下,您的 if 条件评估为:

not code = 3 --> False
not code = 7 --> True

你的 or 语句再次计算为 True

现在看看 code 不同于 3 或 7 的最终情况,假设 code := 5,您的条件评估如下:

not code = 3 --> True
not code = 7 --> True

在这种情况下,您的 or 条件也将是 True