ORA-00903: Ungültiger Tabellenname in PreparedStatement
Ich habe eine Methode, die eine Abfrage mit einer Liste von QueryParameters für die vorbereitete Anweisung ausführt. DasHelperConnection
undQueryParameter
sind nur kleine java bohnen und sollten auf der grundlage der selbsterklärend seinget
Sie sehen hier. Ich versuche aselect * from dual
mit, statt aselect * from ?
bei dem dieQueryParameter
ist ein STRING-Typ und der Wert istdual
. Ich bekomme jedoch einejava.sql.SQLSyntaxErrorException: ORA-00903: invalid table name
Error. Mein Code und die Ausgabe sind unten. Wie geht's?
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;
}
Ausgabe:
The connection is: //.....My connection
The query is: select * from ?
The QueryParameters are:
String - dual