可选的绑定变量以匹配相同的字段

时间:2017-05-26 14:45:23

标签: oracle plsql exadata

障碍:我无法创造任何东西。没有GTT,PROC等我正在查询Exadata数据湖,我创建的任何脚本都将从Toad或SQL Developer执行。该平台是Oracle 11g。

我正在创建一个依赖于两种类型参数的自助报告:日期范围和DNIS(本质上是识别IVR呼叫流程的数字)。至少有一个DNIS,可能多达三个:

WHERE DNIS IN ('1234567', '9876543', '1232345')

我想创建3个绑定变量:: DNIS1,:DNIS2和:DNIS3,其中可以填充一个或多个变量,如果不填充,则为NULL。

理论上:

WHERE DNIS IN (:DNIS1, :DNIS2, :DNIS3)

也许更好的问题是;鉴于我的局限性,如何创建一个动态的IN()子句?这可能吗?

1 个答案:

答案 0 :(得分:0)

感谢Sudipta Mondal(参见评论),答案是将绑定变量包装在TO_CHAR()

WHERE DNIS IN (to_char(:DNIS1), to_char(:DNIS2), to_char(:DNIS3) )