ORA-00903: nombre de tabla no válido en PreparedStatement
Tengo un método que ejecutará una consulta con una lista de QueryParameters para la declaración preparada. losHelperConnection
yQueryParameter
son solo pequeños granos de java y deben explicarse por sí mismos basándose en elget
s usted ve aquí. Estoy tratando de hacer unselect * from dual
utilizando, en lugar de unselect * from ?
donde elQueryParameter
es un tipo STRING y el valor esdual
. Sin embargo, estoy recibiendo unajava.sql.SQLSyntaxErrorException: ORA-00903: invalid table name
error. Mi código y salida están abajo. ¿Que pasa?
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("\t" + StringHelper.splitBy(StringHelper.newline + "\t", 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;
}
Salida:
The connection is: //.....My connection
The query is: select * from ?
The QueryParameters are:
String - dual