Oracle

如何將單個結果儲存在變數中並在查詢(Oracle)中重用它?

  • October 29, 2012

我有一個像這樣的查詢

SELECT id FROM xyz WHERE ...;

它有一個或多或少複雜的 WHERE 子句,並且只返回一行和一列 (ID)。我需要此 ID 用於腳本中的多個後續查詢。所以我的目標是在一個變數中重用這個結果,但我沒有找到一個可行的解決方案。

在這種情況下,加入此查詢不是一個好的選擇。那麼是否可以告訴 Oracle 將這個單一結果儲存在一個變數中並使用這個變數來建構新的查詢——明確地在其他查詢的條件子句中使用?

如果是這樣,也許有人可以發布一個簡單的例子 - 最簡單的可能是某事。喜歡

SELECT :VARIABLE FROM DUAL

對於蟾蜍,從這個答案中 SO:

我認為這將完成您想要的。您可以聲明一個綁定變數,向其中插入一個值,然後在以後的語句中使用它。

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end; 

select *
from dual
where dummy = :l_var;

它有所不同… SQLPlus 可以使用變數,但它們是 SQLPlus 功能,您只需獲取該程式碼塊並將其傳遞給 Oracle 後端即可執行(就像您可以使用 Transact SQL 塊一樣)例如)。

您可以選擇在 SQL*Plus 中使用綁定變數,如下所示:http: //www.adp-gmbh.ch/ora/sqlplus/use_vars.html

或者通過 DEFINE 和 COLUMN 命令使用 SQL*Plus 自己的變數:http: //www.adp-gmbh.ch/ora/sqlplus/new_value.html

如果您確實需要程式碼在其他環境中可執行,您可能不得不走 PL/SQL 路線。

引用自:https://dba.stackexchange.com/questions/27790