Oracle
如何將單個結果儲存在變數中並在查詢(Oracle)中重用它?
我有一個像這樣的查詢
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 路線。