我试图传递一个由逗号分隔的数字列表,以便在我的SQL查询条款中使用,但我发现你不能通过共同体。有没有办法做到这一点?我已经尝试过强烈反对和其他事情,但它仍然无法正常工作。我可以使用分号代替分号,并在表使用绑定变量加载查询之前将分号更改为逗号为逗号吗?任何帮助,将不胜感激。
答案 0 :(得分:2)
除了你可以传递逗号外,它都受支持。 https://community.oracle.com/thread/4148695
如果你想传递一个数字列表,为什么要使用逗号? 你是如何使用这些数字的?
描述你想要解决的而不是你试图如何解决它通常会更好。如果你只是描述你尝试过的东西,你至少应该详细说明,特别是因为解决方案是documented。
答案 1 :(得分:0)
您必须将逗号分隔值拆分为行。这是一个例子:
SQL> select * from dept
2 where deptno in
3 (select regexp_substr('&&P1_IN_LIST', '[^,]+', 1, level) deptno
4 from dual
5 connect by level <= regexp_count('&&P1_IN_LIST', ',') + 1
6 );
Enter value for p1_in_list: 10,30
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
30 SALES CHICAGO
SQL>
相同的Apex查询看起来像
select * from dept
where deptno in
(select regexp_substr(:P1_IN_LIST, '[^,]+', 1, level) deptno
from dual
connect by level <= regexp_count(:P1_IN_LIST, ',') + 1
);