I have the following sample query:
IF(1=1)
Select top 10 * from Person
ELSE
Select top 10 * from Person where Id < 20
When i create a report with above query using iReport, the report works fine.
But when i upload the same report to JasperReports Server and try to run the report, it is throwing the below error.
ERROR Validator,report1 subreports #1:493 - Invalid SQL:An error has occurred.
Please contact your system administrator. (6632),
SQL: IF(1=1)Select top 10 * from PersonELSESelect top 10 * from Person where Id < 20.
Does JasperReports Server supports IF..Else conditions outside the SELECT statement?
Do any one know about this error?
After searching for around 4 days, i found a solution.
Jasper Server allows the SQL queries that starts with only "SELECT" keyword. So in order to make other queries work, we have to modify a regular expression of "Validator.ValidSQL" that is present in "webapps/jasperserver/WEB-INF/classes/esapi/security-config.properties/validation.properties" location.
I have modified this regular expression to support 'IF' conditions and made it work.
Got this solution from jasper community forum: