我正在编写一个查询,其中'batch_name'是参数,有时我只得到一个批名称,有时我得到2个或更多批名称。如何在Oracle BI Publisher查询中处理此问题,
这是我的查询,
process_list=["/test/fruit/apple","/test/fruit/pineapple","/test/fruit/banana","/test/tech/apple-pen","/test/animal/python","/test/animal/penguin"]
现在这个查询只处理一个批处理名称,我希望它能处理多个批处理名称。
像exclude_list=["apple","python"]
之类的东西
但是使用IN子句的问题是我无法预测我必须查询的批次数。任何人都可以帮助我。
答案 0 :(得分:1)
你有两个选择。一种是将变量组合成一个字符串并使用某种方法,例如regexp_like()
:
where regexp_like(upper(pbh.batch_name), ??)
参数字符串应如下所示:'^abc|def|ghi|jkl$'
。只要你愿意,你就可以制作它。
另一种方法是使用execute immediate
。使用IN
将值作为字符串转储到SQL查询中。这种方法的优点是它可以更容易地使用索引