2014-12-03 121 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