Problem : Passing parameters does not work with query having LIKE Clause
I am trying to pass a parameter in the parametrized query.
Working Fine:
String Query = "Select * from ABC where name=?";
Connection con = sql.getSqlDOConnector().getConnection();
PreparedStatement selectStmt = con.prepareStatement(selectQuery);
selectStmt.setString(1, "ABC");
ResultSet rs5 = selectStmt.executeQuery();
Having Issues:
String Query = "Select * from ABC where (LOWER(NAME) LIKE \'% ? %\')";
Connection con = sql.getSqlDOConnector().getConnection();
PreparedStatement selectStmt = con.prepareStatement(selectQuery);
selectStmt.setString(1, "ABC");
ResultSet rs5 = selectStmt.executeQuery();
I am getting
java.sql.SQLException: Invalid column index at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5303) at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:5291) at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:278)
Any idea on why I am getting this error while working with Parametrized queries having LIKE clause? Any pointers would be helpful.