3

我在 BIP 中使用以下查询,它会引发“无效号码”错误。相同的查询在 Toad 中运行良好。有人能告诉我为什么我得到ORA-01722: invalid number。当只使用 1 个参数时,它工作正常,只有当我们选择超过 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||'%'
4

1 回答 1

0

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

于 2013-01-22T21:56:38.317 回答