您必须指定查询执行器工厂,因为JasperReports库中默认不包括对plsql的支持。在iReport中(至少在较早的版本中),我认为默认情况下已为您设置了此设置。您可以通过以下方式在iReport
GUI中进行验证:
- 菜单工具->选项->查询执行器
- 特别:
- 语言= plsql,
- 工厂类= com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory
- 字段提供者类= com.jaspersoft.ireport.designer.data.fieldsproviders.SQLFieldsProvider
做同样在Java中,你必须做 的东西 ,如:
jasperReport.setProperty( "net.sf.jasperreports.query.executer.factory.plsql" ,"com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory");//Maybe this too, but not positiveJRProperties.setProperty( JRQueryExecuterFactory.QUERY_EXECUTER_FACTORY_PREFIX+"plsql" ,"com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory");
请注意,类名称在最新版本中已更改。因此,
JRQueryExecuterFactory您可能需要使用代替
QueryExecuterFactory。(如果这样做没有帮助,则应指定所使用的JasperReports版本。)您还需要确保JasperReports扩展库在类路径中。您可以在iReports
lib目录中找到该jar。
外部资源:
- JRQueryExecuterFactory
- 如何在Jasper报表中执行Oracle存储过程
- 在JasperServer 5.1中没有为’plsql’语言注册的查询执行程序工厂



