2014-12-03 115 views
0

我動態構建一個搜索查詢,綁定變量至少有1個和最多7個不同的潛在標準。我知道我可以做到這一點 -PLSQL立即執行動態使用

EXECUTE IMMEDIATE sql USING bind_var1, bind_var2 or 
EXECUTE IMMEDIATE sql USING bind_var3, bind_var5, bind_var7. 

是否有可能在sql中包含綁定變量?

sql = 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2 USING bind_var1, bind_var2' 

,做

EXECUTE IMMEDIATE sql? 

我想,需要動態地建立了使用片而不是寫了很多IF的THEN語句。

回答

0

使用bind_var1,bind_var2 PICE的代碼應該出側OS您的SQL字符串,並提出在末執行即時發言,也感謝選擇senarios嘗試使用動態SQL選擇與遊標,除非你想要選擇一個變量

0

根據你的標籤,我認爲這將在某種PL/SQL塊中使用。所以,也許你在尋找open for聲明。

這可以讓你得到一個光標上的動態查詢:

sql := 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2'; 
open my_cursor for sql using bind_var1, bind_var2'; 

-- do whatever you need with your cursor