Jaspersoft Studio:如何将数组参数(数字表)发送到pl / sql函数?

时间:2014-02-28 10:44:03

标签: collections plsql jasper-reports ireport

我想将一个数字列表发送到pl / sql函数。参数的typedef是:TYPE colNumbers IS TABLE OF NUMBER(5,0)。在普通的SQL查询中,我使用

调用我的函数
select (Test.argLoN(colNumbers(1,2,3,4,5,6))) as "asd" from dual 

这部分工作正常。

我读到JR引擎调用参数的toString()方法。所以在ireport 5.5.1(eclipse插件版本)中,我创建了一个String类型的参数,并给他“默认表达式”“1,2,3,4,5,6,7,8,9,10”。在查询对话框中,我调用语句:

select (Test.argLoN(colNumbers($P{val})) as "asd" 
from dual

如果我运行报告,我会收到此错误消息:

  

net.sf.jasperreports.engine.JRException:执行SQL语句时出错:测试

如果我明白这一点。

select (Test.argLoN(colNumbers($P{val})) as "asd" from dual" 
带有val =“1,2,3,4,5”的

应该创建

select (Test.argLoN(colNumbers(1,2,3,4,5))) as "asd" from dual

或者我误解了它?

1 个答案:

答案 0 :(得分:1)

您需要在iReport中使用参数literal。

$P!{Values}

而不是

$P{Values}

使用$ P!{}将尝试不转义或“参数化”输入。您可以在语句中明显使用的值将取决于您的数据源。