我想将一个数字列表发送到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
或者我误解了它?
答案 0 :(得分:1)
您需要在iReport中使用参数literal。
$P!{Values}
而不是
$P{Values}
使用$ P!{}将尝试不转义或“参数化”输入。您可以在语句中明显使用的值将取决于您的数据源。