Я пытаюсь подключиться к базе данных и обновить таблицу в ней с помощью подготовленных операторов в java-программе - база данных называется «база данных», а в ней есть другая папка «Виды», в которой таблица («ТАБЛИЦА»), которую я пытаюсь обновить. Вот мой код:подготовленные операторы SQL в java
public void updateTable(Map<String, String> mp) throws SQLException {
String URL = "jdbc:oracle:thin:@localhost:1500:orcl";
String USER = "user";
String PASS = "password";
Connection con = DriverManager.getConnection(URL, USER, PASS);
PreparedStatement updateTableName = null;
String updateString =
"update database.Views.TABLE " +
"set TABLENAME = ? " +
"where TABLENAME = ?";
try {
con.setAutoCommit(false);
updateTableName = con.prepareStatement(updateString);
for (Map.Entry<String, String> e : mp.entrySet())
{
updateTableName.setString(1, e.getValue());
updateTableName.setString(2, e.getKey());
updateTableName.executeUpdate();
con.commit();
}
} catch (SQLException e) {
if (con != null)
{
try {
System.err.print("Transaction is being rolled back");
con.rollback();
} catch (SQLException excep) {
}
}
} finally {
if (updateTableName != null)
{
updateTableName.close();
}
con.setAutoCommit(true);
}
con.close();
}
Всякий раз, когда я запускаю код, он отображает «транзакция откатывается». Любая идея, какие ошибки я имею в заявлении try? Заранее спасибо!
EDIT: когда я изменяю его для печати исключения, он считывает ORA-00971: отсутствует ключевое слово SET.
Вместо того, чтобы просто поймать, печать/вход исключение может GIV E некоторую подсказку – kosa
Di Вы читали исключение? – SLaks