在多个 pl sql 块上使用条件

Posted

技术标签:

【中文标题】在多个 pl sql 块上使用条件【英文标题】:using condition on more than one pl sql blocks 【发布时间】:2018-11-14 16:46:50 【问题描述】:

是否可以在多个 pl sql 块上使用一个条件 而不是在所有块中重复某些条件? 例如这样的:

BEGIN  
     select user_id from users  
     if :app_user_id = user_id  
         then do the bottom blocks  
     begin  
     end ;  
     begin  
     end ;  
     begin  
     end ;  
END ;

【问题讨论】:

可能是嵌套块? plsqltutorial.com/plsql-nested-block 了解更多关于你的块做什么的细节会很有帮助 - 如果处理相关,为什么你有单独的块(有一个控制条件表明)。 【参考方案1】:

根据我对问题的理解,您需要检查代码中不同点的条件。

您可以将一个条件放入过程/函数中(取决于您的代码)并执行相同的操作,而不是一次又一次地放下这些条件。

如果我的理解有误,请纠正我。

【讨论】:

【参考方案2】:

有可能,为什么不呢?

我不知道这是多么明智(您在同一级别使用两个连续的执行块来完成,而您无法在一个块中完成),但它可能是。例如:

begin
  if 3 > 1 then
    begin
      dbms_output.put_line('First line');
    end;
    begin
      dbms_output.put_line('Second line');
    end;
  end if;
end;
/

输出(显然,SET SERVEROUTPUT ON 首先,如果尚未打开):

First line
Second line


PL/SQL procedure successfully completed.

【讨论】:

以上是关于在多个 pl sql 块上使用条件的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL条件控制

PL/SQL 和条件 FROM 子句

where 条件中的可选参数 - 如何提高性能 - PL/SQL

使用 PL/SQL 的日期和条件

PL/SQL程序设计

PL/SQL 中 CASE 语句中的堆栈条件