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