me sale un error cuando intento insertar algunas filas en un db. así que aquí está el códigojava.sql.SQLException: ORA-00928: palabra clave SELECT que falta. cuando inserto el registro a DB usando JDBC
try {
String insertStmt = "INSERT into " +
"MY_TABLE('RECORD_TYPE', 'FILE_TYPE', 'DATE', 'BATCH_NO', 'RECORD_COUNT')" +
"VALUES(?, ?, ?, ?, ?);";
PreparedStatement pstmt = super.con.prepareStatement(insertStmt);
pstmt.setString(1, input[0]);
pstmt.setString(2, input[1]);
pstmt.setString(3, input[2]);
pstmt.setString(4, input[3]);
pstmt.setString(5, input[4]);
System.out.println("Insert rows : " + pstmt.executeUpdate());
} catch (SQLException sqle) {
System.out.println(sqle.getMessage());
sqle.printStackTrace();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
con.close();
}
y todo en el DB es de tipo VARCHAR, comprobó el doble de las columnas (todos son del mismo nombre), se llevó a cabo la cita fuera el nombre de columna (mismo resultado) sin éxito. para agregarlo, el mensaje de error no es muy útil.
cualquier sugerencia sería apreciada.
Try sin las comillas (debe estar entre comillas si lo hay), sin el punto y coma final, y con un espacio antes de 'values'. – Thilo
No hay espacio entre RECORD_COUNT) y VALUES (... por lo que su comando de inserción se ve como 'INSERTAR en MY_TABLE (......) VALUES (????) ' – Kal
Creo que siempre tendrá que usar el doble comillas, ya que DATE es normalmente un identificador inválido. (Por eso no debe usarlo como un nombre de columna. Y además, ¿por qué está almacenado como una cadena?) –