【问题标题】:Invalid Number in multi select- BI Publisher 10.1.3.4多选中的数字无效-BI Publisher 10.1.3.4
【发布时间】:2012-12-07 15:15:23
【问题描述】:

我在 BIP 中使用以下查询,它会引发 'Invalid Number' 错误。相同的查询在 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||'%'

【问题讨论】:

  • 我会首先仔细测试 yy 查询,看看你是否有带有逗号的值

标签: sql regex oracle10g


【解决方案1】:

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

【讨论】:

  • 尝试修改你的答案:)
猜你喜欢
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多