Я пытаюсь удалить некоторые объекты в базе данных Oracle, используя jdbc. Я хочу пропустить, если возникла ошибка ORA-04043. Ниже приведен код, который я построил.Java: Как игнорировать некоторые SQLException?
Эта строковая переменная массива SqlList.uninstall_OS_COMMAND_SQL.
public static String[] uninstall_OS_COMMAND_SQL = {
"DROP PACKAGE OS_COMMAND",
"DROP PACKAGE LOB_WRITER_PLSQL",
"DROP TYPE OSCOMMAND_VC2_ARRAY",
"DROP TYPE OSCOMMAND_DIR_ARRAY",
"DROP TYPE OSCOMMAND_DIR_ENTRY",
"DROP TYPE FILE_LIST_TYPE",
"DROP TYPE FILE_TYPE",
"DROP PACKAGE FILE_PKG",
"DROP JAVA SOURCE \"OS_HELPER\"",
"DROP JAVA SOURCE \"FILE_TYPE_JAVA\"",
"DROP PACKAGE FILE_SECURITY"
};
и это код.
private void uninstallOS_COMMAND_Step1_For_11g() {
Connection targetDBconn = null;
Statement stmt = null;
try {
targetDBconn = globalTargetConn.connect();
logWriter.writeLogs(logTextArea, LogWriter.INFO, "Uninstalling OS_COMMAND package...");
for (int i = 0; i < SqlList.uninstall_OS_COMMAND_SQL.length; i++) {
stmt = targetDBconn.createStatement();
stmt.setEscapeProcessing(false);
logWriter.writeLogs(logTextArea, LogWriter.INFO, "See the query below...");
logWriter.writeLogs(logTextArea, LogWriter.INFO, "\n"+SqlList.uninstall_OS_COMMAND_SQL[i]);
stmt.executeUpdate(SqlList.uninstall_OS_COMMAND_SQL[i]);
}
} catch (SQLException ex) { logWriter.writeLogs(logTextArea, LogWriter.ERROR, ex.getMessage());
} finally {
if (stmt != null) try {stmt.close();} catch(SQLException ex) {}
if (targetDBconn != null) try {targetDBconn.close();} catch(SQLException ex) {}
}
}
Если я запустил этот код, он выполняет только один элемент в массиве и останавливает весь метод. Пожалуйста, помогите мне ..
Можете ли вы запустить запрос, который проверяет, существуют ли разные вещи? –
Да, но это вызывает у меня головокружение, чтобы сделать больше кода, я просто хочу сделать его коротким и просто пропустить конкретную ошибку. Как только я ссылаюсь на эту ссылку (https://docs.oracle.com/javase/tutorial/jdbc/basics/sqlexception.html), я думаю, что есть подсказка для меня, но я полностью не могу понять .. :( – James
Если вы хотите есть исключение и двигаться дальше, ничего не мешает вам это делать. –