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 elgets 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