I have a method that will execute a query with a list of QueryParameters for the prepared statement. The HelperConnection
and QueryParameter
are just small java beans and should be self-explanatory based on the get
s you see here. I'm try to do a select * from dual
using, instead a select * from ?
where the QueryParameter
is a STRING type and the value is dual
. However, I'm getting a java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name
error. My code and output are below. What's up?
public static ResultSet executeQuery(HelperConnection helperConnection, String query, QueryParameter... params) throws SQLException {
System.out.println("The connection is: " + helperConnection.getJdbcURL());
System.out.println("The query is: " + query);
if (params.length > 0) {
System.out.println("The QueryParameters are:");
System.out.println("" + StringHelper.splitBy(StringHelper.newline + "", params));
}
Connection conn = helperConnection.createOracleConnection();
PreparedStatement pstmt = conn.prepareStatement(query);
for (int i = 1; i <= params.length; i++) {
QueryParameter param = params[i - 1];
switch (param.getType()) {
//Other cases here
case QueryParameter.STRING:
pstmt.setString(i, param.getValue());
break;
}
}
ResultSet rs = pstmt.executeQuery();
conn.commit();
return rs;
}
Output:
The connection is: //.....My connection
The query is: select * from ?
The QueryParameters are:
String - dual
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…