如何将单个结果存储在变量中并在查询(Oracle)中重用?

clj*_*ljk 6 oracle oracle-11g-r2 plsql scripting

我有一个类似的查询

SELECT id FROM xyz WHERE ...;
Run Code Online (Sandbox Code Playgroud)

它有一个或多或少复杂的 WHERE 子句,并正好返回一列(ID)的一行。我需要此 ID 用于脚本中的多个后续查询。所以我的目标是在一个变量中重用这个结果,但我没有找到一个有效的解决方案。

在这种情况下,加入此查询不是一个好的选择。那么是否有可能告诉 Oracle 将这个单个结果存储在一个变量中并使用这个变量来构建新的查询——明确地在其他查询的条件子句中使用?

如果是这样,也许有人可以发布一个简单的示例-最简单的可能是……。喜欢

SELECT :VARIABLE FROM DUAL
Run Code Online (Sandbox Code Playgroud)

Jac*_*las 2

对于蟾蜍,从这个答案来看:

我想这会实现你想要的。您可以声明一个绑定变量,向其中插入一个值,然后在以后的语句中使用它。

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end; 

select *
from dual
where dummy = :l_var;
Run Code Online (Sandbox Code Playgroud)