多选 - BI Publisher 10.1.3.4中的编号无效

时间:2012-12-20 06:24:43

标签: sql regex oracle10g

我在BIP中使用以下查询,它会抛出'无效数字'错误。相同的查询在Toad中工作正常。有人可以告诉我为什么我得到 ORA-01722:无效的数字 。当只使用1个参数时,它工作正常,只有当我们选择多个选项时,我们得到这个错误。

我们使用 String数据类型作为参数 ref_std

以下是每个包含

的值的要点

multilist01 - 包含csv值,例如',100,200,300,400,'

:ref_std - 将是一个参数(多选),如EN 60439-1:1999,EN 60439-3:1991


select * from
( 
select cert.multilist01
from
some_table 
) xx
join 
(

select id as input from some_table where item_number in 
(
select regexp_substr(:ref_std,'[^,]+', 1, level) ID
from dual
connect by regexp_substr(:ref_std,'[^,]+', 1, level) is not null
) 


)yy on xx.multilist01 like '%'||yy.input||'%'

1 个答案:

答案 0 :(得分:0)

首先:Item_number必须是String,因为ref_std不是数字,或者您必须更改'[^,] +'以提取数字。 如果cert.multilist01是100 200 300的行,那么这是数字,你不能与'yy'(String)加入'。 您必须在String中转换cert.multilist01(some_table中的列)或者您必须仅在ref_std中提取更改正则表达式的数字。