1

障碍:我无法创造任何东西。没有 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() 子句?这可能吗?

4

1 回答 1

0

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

WHERE DNIS IN (to_char(:DNIS1), to_char(:DNIS2), to_char(:DNIS3) )
于 2017-05-26T18:21:58.683 回答